Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 单个Xpath查询中的属性和相对位置?_Xml_Xpath - Fatal编程技术网

Xml 单个Xpath查询中的属性和相对位置?

Xml 单个Xpath查询中的属性和相对位置?,xml,xpath,Xml,Xpath,我试图设置一个Xpath查询,它不仅搜索具有特定属性的节点,还搜索它的相对位置,而不是它在XML中的实际位置 例如: <room> <child gender="female"> <name>Anne</name> </child> <child gender="female"> <name>Mary</name> </child> <ch

我试图设置一个Xpath查询,它不仅搜索具有特定属性的节点,还搜索它的相对位置,而不是它在XML中的实际位置

例如:

<room>
<child gender="female">
<name>Anne</name>
</child>

<child gender="female">
<name>Mary</name>
</child>

<child gender="male">
<name>John</name>
</child>

<child gender="male">
<name>David</name>
</child>
</room>

安妮
玛丽
约翰
大卫
我想说明哪个性别和孩子的相对位置。所以在我的情况下,我想要文件中的第二个男性

/room/child[@gender=“male]
只给了我所有男性,如果
/room/child[position()=2]
会导致玛丽被拉


我已经想出了一个解决方案,根据每个人的位置给他们另一个ID属性,并可以用一个简单的
/room/child[@gender=“male”和@ID=“2”查询这个属性"
但这需要我做大量工作才能返回到所有文档中并添加第二个属性,而不是尽可能使用单一的简化Xpath。我也意识到我可以通过查询获取男性,然后查询结果的位置,但我还是希望尽可能只保留一个查询。

你有问题巧妙地寻找:
//child[@gender='male'][2]

是的,这似乎正是我所需要的。非常感谢!