在 php 中读取带有 simpleXML 的 xml 元素,其名称包含:

Read xml element with simpleXML in php with name which contain :

我在 PHP 中使用 SimpleXML,我尝试解析 xml 文件,其中包含 : 在元素名称中,如下所示:

<url>
  <url1> url </url>
  <data:data> some data </data:data>
</url>  

主要问题是我无法解析具有这样名称 (<data:data>) 的元素,我尝试了 $xml->url->{'data:data'}; 但没有任何效果。当我试图用

找出所有 <ulr> childred 时
foreach ($url->children() as $key ) {
                 echo $key->getName() ;
    }

我只有一个 child,任何人都可以帮助我如何解析名称中的 xml whith : 。 我尝试将 <data:data> 更改为 <data-data> 然后 {'data-data'} 起作用了,但是这个 insnt 解决方案对我来说

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