我是XML名称空间的新手,在标题上搜索显示有些人遇到同样的问题,但不知怎的,它对我不起作用。
XML情况:
<abc:documents xmlns:abc="http://www.someurl.com/xml/abc/dtd" count="1">
<def:doc xmlns:def="http://www.someurl.com/xml/def/dtd">
<def:meta>
<def:hello-world>hi there</def:hello-world>
</def:meta>
<def:serial-item>
<ghi xmlns="http://www.someurl.com/xml/ja/dtd" docsubtype="fla" xml:lang="en" version="5.1">
<item-info>
<helloworld>hi there</helloworld>
</item-info>
</ghi>
</def:serial-item>
</def:doc>
</abc:documents>
当我这样做时:
$xml = new SimpleXMLElement('<abc:documents xmlns:abc="http://www.someurl.com/xml/abc/dtd" count="1">...THE ABOVE XML...</abc:documents>');
$doc = $xml->children('def', TRUE);
$data = $doc->children('def', TRUE);
header ("Content-Type:text/xml");
echo $data->asXML();
它只显示def:meta
的内容但是当我这样做时:var_dump(count($data))
它显示正确(2)
所以人们期望这样做:
foreach($data as $dataPiece){
echo $dataPiece->asXML();
echo '--------------';
}
但只是显示def:meta的内容......
所以问题是:我该如何度过:<ghi>