昨天我已经有一个问题要解析php中的xml文档了。现在解析工作有点,但我只能在字符串中获取所有内容,而不是对象。
我的代码:
$xml = simplexml_load_file('file.xml');
debug($xml); // debug from CakePHP
我从上一篇文章中了解到的空输出:
$xml = $xml->asXML();
debug($xml);
现在我只得到如下输出:
我确实得到了XML代码,但是字符串中包含->asXML()
的所有内容。如何将所有内容都作为XML对象获取?我尝试将字符串与simplexml_load_string($xml);
一起使用,但只输出与第一个屏幕截图相同的内容。
可能存在问题,因为XML以<asx:abap></asx>
(命名空间)开头?
如果您愿意,我可以上传我的XML,以便您进行测试。
修改1
我意识到,我的XML中的前两个元素是命名空间(<asx:abap>
和asx:values
)。只要我将它们重命名为asx
,一切正常。
修改2
这是我的XML供您测试。
答案 0 :(得分:1)
您的test.xml
<?xml version="1.0" encoding="UTF-8" ?>
<rss>
<channel>
<item>
<title><![CDATA[Tom & Jerry]]></title>
</item>
</channel>
</rss>
要加载xml表单文件,请使用以下功能
$xml = simplexml_load_file('test.xml');
// echo does the casting for you
echo $xml->channel->item->title;
// but vardump (or print_r) not!
var_dump($xml->channel->item->title);
// so cast the SimpleXML Element to 'string' solve this issue
var_dump((string) $xml->channel->item->title);
了解更多信息,请参阅此链接 http://php.net/manual/en/simplexml.examples-basic.php