使用php中的simpleXML读取xml元素,其名称包含:

时间:2016-01-19 21:57:50

标签: php xml simplexml

我在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'}工作,但这对我来说不是解决方案

1 个答案:

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