使用XPATH按ID搜索HTML文档会返回错误的结果

时间:2018-02-05 02:10:30

标签: html xpath web-scraping html-agility-pack

所以,id喜欢从第200行获取此元素

<p id="Para">Hello, how are you.</p>

为此我正在使用XPATH

HtmlDoc.DocumentNode.SelectSingleNode("//*[contains(@id,'Para')]")

但是,返回的节点不是我要查找的节点,而是在第10行获取一个元素

<p id="ParaInstruction">Click here to begin</p>

我认为这是因为id共有前4个字符,所以它得到了它能找到的第一个字符。如何确保仅返回的节点具有在XPATH中指定的字符。

1 个答案:

答案 0 :(得分:1)

更改

//*[contains(@id,'Para')]

//*[@id='Para']

避免匹配@id 包含 "Para" 子串的每个元素,这是contains()所做的 - 测试子串包含。