有一个HTML文件(其内容我不控制),其中包含多个输入元素,所有元素都具有“search\u query”的相同固定id属性。文件的内容可以更改,但我知道我总是希望获得第二个输入元素,该元素具有id属性“search\u query”
我需要一个XPath表达式来实现这一点。我尝试了//input[@id=“search\u query”][2],但没有成功。以下是此查询失败的示例XML字符串:
<;部门>;
<;表格>;
<;输入id=“搜索\查询”/>;
</表格>;
</部门>;
<;部门>;
<;表格>;
<;输入id=“搜索\查询”/>;
</表格>;
</部门>;
<;部门>;
<;表格>;
<;输入id=“搜索\查询”/>;
</表格>;
</部门>;
请记住,以上仅是一个示例,其他HTML代码可能完全不同,输入元素可能出现在任何没有一致文档结构的地方(除非我保证始终至少有两个id属性为“search\u query”的输入元素)
正确的XPath表达式是什么
这是一个常见问题解答:
//somexpression[$N]
表示“查找由//somexpression选择的每个节点,该节点是其父节点的$N第个子节点”
您想要的是:
(//input[@id=“search\u query”])[2]
记住:[]运算符的优先级(优先级)高于/缩写