有一个HTML文件(我不控制其内容)有几个input元素都具有相同的固定id属性"search_query".文件的内容可以更改,但我知道我总是希望获得input带有id属性的第二个元素"search_query".
我需要一个XPath表达式来执行此操作.我尝试//input[@id="search_query"][2]但是这不起作用.以下是此查询失败的示例XML字符串:
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
<div>
<form>
<input id="search_query" />
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
请记住,上面只是一个示例,其他HTML代码可能完全不同,input元素可以出现在任何地方,没有一致的文档结构(除了我保证总会有至少两个inputid属性为"search_query").
什么是正确的XPath表达式?
我正在解析一些像这样的XML:
<root>
<some_gunk/>
<dupe_node>
...
stuff I want
...
</dupe_node>
<bits_and_pieces/>
<other_gunk/>
<dupe_node>
...
stuff I don't want
...
</dupe_node>
<more_gunk/>
</root>
Run Code Online (Sandbox Code Playgroud)
一个XPath '//dupe_node'会给我两个dupe_node玩的例子.我只想穿越第一个.我可以用XPath做到这一点吗?