我在PHP中使用SimpleXML,我试图解析包含:元素名称的xml文件,如下所示:
<url>
<url1> url </url>
<data:data> some data </data:data>
</url>
主要问题是我无法解析元素这样的名字(<data:data>
),我试过$xml->url->{'data:data'};
但是我没有效果。当我试图找出所有<ulr>
带有
foreach ($url->children() as $key ) {
echo $key->getName() ;
}
我只有一个孩子,任何人都可以帮我解析如何解析xml whith:名字。
我尝试将<data:data>
更改为<data-data>
,然后{'data-data'}
工作,但这对我来说不是解决方案
答案 0 :(得分:0)
XML中包含“:”的名称被视为需要定义的名称空间。
直接来自SimpleXMLElement::children
示例#2的docs。
$xml = '<example xmlns:foo="my.foo.urn">
<foo:a>Apple</foo:a>
<foo:b>Banana</foo:b>
<c>Cherry</c>
</example>';
$sxe = new SimpleXMLElement($xml);
$kids = $sxe->children('foo');
var_dump(count($kids));