我尝试从字符串加载XML,但是我得到一个空对象。
<?php
libxml_use_internal_errors(true);
$xml = simplexml_load_string($myXMLData);
if ($xml === false) {
echo "Failed loading XML: ";
foreach(libxml_get_errors() as $error) {
echo "<br>", $error->message;
}
} else {
print_r($xml);
foreach($xml->{'reference:item'} as $item){
echo $item->{'resource:local-description'};
}
}
?>
输出为:“SimpleXMLElement Object()”。 为什么我没有错误,但对象仍然是空的?
答案 0 :(得分:0)
如果将xml var更改为:
,则可以正常工作$myXMLData = '
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reference:reference
到
$myXMLData = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reference:reference
它现在可能需要它是空的
答案 1 :(得分:0)
您应该阅读有关使用命名空间解析XML的信息。它与普通XML有很大不同。
作为第一次迭代,代码的else
部分可以是这样的:
} else
foreach($xml->children('reference', true) as $item)
if($item->getName() == 'item')
foreach($item->children('resource', true) as $desc)
if($desc->getName() == 'local-description')
echo $desc ."\n";