我有一个XML,架构
$xml =
'<NodeSet
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
<Node category="category" i:type="ObjectNode">
<NodeId>
<Identifier>i=86</Identifier>
</NodeId>
</Node>
</NodeSet>';
我需要从Node元素中提取 i:type 属性值。我尝试访问它,因为我会在访问普通属性时这样做,但似乎它没有那样工作
以下是我可以访问category属性的方法,
$xml=simplexml_load_string($xml);
echo $xml->Node[0]['category']; //this prints 'category' as expected
echo $xml->Node[0]['i:type']; //prints nothing, how do i get the i:type attribute value ?
答案 0 :(得分:1)
您需要使用命名空间访问属性,这可以使用attributes()
方法完成...
echo $xml->Node[0]->attributes("i",true)['type'];
使用("i",true)
表示使用i前缀而不必放置URI。