将 XML 元素视为
<Person>
<contact phone="123" email="abc" address="abcde">Sid</contact>
<contact phone="987" email="cba" address="qwerty">Zid</contact>
</Person>
我想要一个 xpath,它将打印第一个属性 =“123”的联系人节点,无论属性名称如何。类似于/Person/contact[@*[position()=1]="123"]。在这种情况下,它应该打印“Sid”。
最佳答案
如果您使用/contact/@*[1]
,您可能会得到您想要的。但请记住,属性没有排序(分别为 "The relative order of attribute nodes is implementation-dependent." ),因此不同的实现可能会为 @*
上的位置谓词 [1]
返回不同的属性。
XPath /Person/contact[@* = '123']
可能会满足您编辑的要求,因为它选择一个 contact
元素,该元素具有任何值为 '123'
。正如已经指出的,您还可以使用位置谓词 /Person/contact[@*[1] = '123']
但结果可能取决于实现。
关于xml - 从 XML 返回元素的第一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867615/