2013-03-21 153 views
2

我有以下XML結構:解析XML與PHP冒號屬性

<entry> 
    <id im:id="595831580">blabla</id> 
</entry> 

現在我想解析ID 595831580.

我想:

$idAtt = $xml->entry->id; 
$id = $idAtt->attributes(); 
$id2 = $id['im:id']; 

但這不起作用:(

我該如何解決它?

+0

如果xml是一個字符串,你'simplexml_load_string();'它,要轉換爲一個對象嗎? var_dump($ xml);'show? – Waygood 2013-03-21 11:30:53

+0

你必須用XML解析器解析XML,並創建一個對象,甚至有希望解析它;告訴我們你正在使用的是什麼 – Amelia 2013-03-21 11:30:58

+0

你首先需要在訪問屬性之前註冊命名空間「im'。 – 2013-03-21 11:34:37

回答

0

不知道但可能是這樣的

$attr = $xml->id[0]->attributes(); 
echo $attr['im:id']; 
4

好的。

你不能在SimpleXMLElementoffsetGet方法使用命名空間,但是你可以在attributes方法:

echo $xml->entry->id->attributes("im",TRUE)->id; 

退房this comment多一個演示。

+0

謝謝,完美的解決方案! – Flappy 2017-02-20 21:16:13