2013-03-21 4 views
2

Я бы иметь следующую структуру XML:Анализировать XML с атрибутом двоеточия в PHP

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

Теперь я хочу, чтобы разобрать идентификатор 595831580.

Я пробовал:

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

Но это не работает :(

Как это можно исправить?

+0

Если xml является строкой, вы просто 'simplexml_load_string();' it, чтобы преобразовать в объект? что делает 'var_dump ($ xml);' show? – Waygood

+0

Вам нужно проанализировать XML с помощью синтаксического анализатора XML и создать объект из него, чтобы даже надеяться на его синтаксический анализ; покажите нам, что вы используете – Amelia

+0

Прежде чем обращаться к атрибуту, вам необходимо зарегистрировать пространство имен 'im'. –

ответ

0

Не уверен, но, возможно, что-то вроде этого

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

Хорошо.

Вы не можете использовать пространство имен в offsetGet методы SimpleXMLElement, но вы можете в attributes методе:

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

this comment ЗАКАНЧИВАТЬ для еще одной демонстрации.

+0

Спасибо, отличное решение! – Flappy

Смежные вопросы