2

到目前为止,这是我的代码......不用说,它不起作用:(

$feed = <<< THEXML

<programs>
<program>
<date>2009-04-16</date>
<start_time>17:00</start_time>
<leadtext>hello hello!
</leadtext>
<name>Program 1</name>
<b-line>Comedy</b-line>
<synopsis>Funny stuff
</synopsis>
<url>http://www.domain.tld/program_name</url>
</program>
<programs>
THEXML;


$xml  = (array) simplexml_load_string($feed);

print_r($xml);exit;

将不胜感激任何帮助,现在已经在 php.net 网站上呆了几个小时,感觉脑残。

请注意,在上面的示例 xml 中只有一个

 <program>...</program>

标签,但实际上我有一个或多个需要使用。例如

 <programs>
 <program>...</program>
 <program>...</program>
 <program>...</program>
 </programs>

我想如果我能让一个工作,然后我可以循环它,但只是想我会解释我在这里的目的。

提前致谢!

4

2 回答 2

2

假设提供程序为您提供了有效的 XML,那么您只需遍历程序并使用您需要的任何信息,如下所示:

<?php
foreach ( $xml as $node ) {
    echo $node->synopsis;
    //or whatever property you want to access on the SimpleXMLElement Object
}

由于您没有正确的 XML(作为未封闭的<programs>标记,因此您可能需要修改脚本以更正该错误,如下所示:

$feed = preg_replace('/<programs>$/', '</programs>', trim($feed));
于 2012-10-30T03:23:53.823 回答
2

您缺少结束结束标记。

$feed = <<< THEXML

<programs>
<program>
<date>2009-04-16</date>
<start_time>17:00</start_time>
<leadtext>hello hello!
</leadtext>
<name>Program 1</name>
<b-line>Comedy</b-line>
<synopsis>Funny stuff
</synopsis>
<url>http://www.domain.tld/program_name</url>
</program>
</programs> // <========= here
THEXML;
于 2012-10-30T03:31:30.393 回答