2016-01-19 131 views
1

我在PHP中使用SimpleXML,我試圖解析包含XML文件:在元素名稱,像這樣:用SimpleXML讀取XML元素PHP中的名稱包含:

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

主要的問題是我無法解析元素whith這樣的名字(<data:data>),我試過$xml->url->{'data:data'};但我沒有效果。當我試圖找出所有<ulr> childred與

foreach ($url->children() as $key) { 
       echo $key->getName() ; 
    } 

我只有一個孩子,任何人都可以幫助我如何解析XML蒙山:在名稱。 我試圖改變<data:data><data-data>然後{'data-data'}工作,但對我來說

回答

0

的名稱本insnt解決方案,包含「:」在XML被認爲是需要被定義的命名空間。

直接從docsSimpleXMLElement::children的例子#2。

$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)); 
+0

非常感謝,你救我的一天:) – Branislav

+1

需要被'$孩子= $ sxe->兒童(「富」,真);'(信任分配的文件前綴不改變)或'$ kids = $ sxe-> children('my.foo.urn');'(使用實際的命名空間標識符,它永遠不會改變)。 – IMSoP