使用PHP解析具有冒号属性的XML

3
我将使用以下XML结构:

我将使用以下XML结构:

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

现在我想解析id为595831580的内容。
我尝试了:
$idAtt = $xml->entry->id;
$id = $idAtt->attributes();
$id2 = $id['im:id'];

但是这并不起作用 :(
我该如何解决它?

如果 XML 是一个字符串,你是否使用 simplexml_load_string(); 将其转换为对象? var_dump($xml); 显示了什么? - Waygood
你必须使用XML解析器解析XML,并创建一个对象,才能有希望可靠地解析它;告诉我们你正在使用什么。 - Amelia
在访问属性之前,您首先需要注册命名空间“im”。 - Johannes Klauß
1
请查看此评论$idAtt->attributes("im",true)->id - Passerby
那听起来像是一个答案 @路人甲 - Emissary
2个回答

5

好的。

SimpleXMLElementoffsetGet方法中不能使用命名空间,但可以在attributes方法中使用:

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

查看这个评论获取更多演示。


谢谢,完美的解决方案! - Flappy

0

不确定,但可能是这样的

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接