我有以下xml文件
<?xml version="1.0" encoding="UTF-8"?>
<data>
<item name="general.global.Event"><![CDATA[EVENT!]]></item>
<item name="general.global.CompanyName"><![CDATA[some name]]></item>
<item name="general.global.CompanyImprint"><![CDATA[Legal information]]></item>
</data>
我的代码如下
$xml = simplexml_load_file("general.xml") or die("Error: Cannot create object");
print_r($xml);
我的输出缺少CDATA。 怎么做?
SimpleXMLElement Object
(
[item] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => general.global.Event
)
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => general.global.CompanyName
)
)
[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => general.global.CompanyImprint
)
)
)
)
正在读取CDATA,阅读这个答案,您将看到如果您print_r($xml->asxml())
; 解析器可以很好地重新编译CDATA信息。
由于某种原因,PHP的var_dump
和print_r
没有XML对象的精确表示。 尝试此操作,您仍然可以访问数据:
foreach ($xml->item as $item) {
if ('general.global.CompanyImprint' === (string)$item['name']) {
var_dump((string)$item);
}
}
// prints
string(17) "Legal information"
文本节点不使用print_r
公开。
您可以看到这里的数据,您可以明确地查看它:
print $xml->item[0];