遍历XML树以获取属性值
这是我的
XML(代码段):
<?xml version="1.0" encoding="utf-8"?> <test> <body label_position="left"> <page number="1"> <itemset name=""> <item name="" id="1" /> <item name="" id="2" label_position="right" /> </itemset> </page> </body> </test> 我想要完成的事情: 我尝试过的: $xml->xpath("//item[@id='1']::ancestors-or-self/@label_position"); 产生了无效的表达. (1)如何使这个表达式工作? 编辑:感谢choroba&德克,我能把它放在一起: $test = (string)array_reverse($xml->xpath("//item[@id='2']/ancestor-or-self::*/@label_position"))[0]; 说明:如果两者都是< item>和< body>如果有属性,xpath将返回一个包含两个值的数组,< body>一个先.在这种情况下,我想得到< item>首先,这就是array_reverse()的原因. 看它工作:http://codepad.viper-7.com/jDPIde 解决方法
您应该更加小心XPath语法.表达的正确形式是
//item[@id='1']/ancestor-or-self::*/@label_position 你不能在谓词之后使用::并且你必须在轴之后指定::. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |