PHP SimpleXML解析文件,只获取一个字符串

时间:2016-02-10 10:50:33

标签: php xml parsing simplexml

昨天我已经有一个问题要解析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供您测试。

Downloadlink to XML

1 个答案:

答案 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