【问题】
对于html:
<a href="/search?q=weight+loss+site:.edu+inurl:blog+%22post+a+comment%22+-%22you+must+be+logged+in%22&newwindow=1&safe=strict&ei=XZp2UczlE8nYigeK5IHgCg&start=10&sa=N" class="pn" id="pnnext" style="text-decoration:none;text-align:left"><span class="csb gbil ch" style="background-position:-96px 0;width:71px"></span><span style="display:block;margin-left:53px;text-decoration:underline">Next</span></a>
想要使用xpath去选择此a,对于选择单个属性,可以使用的xpath是:
//a[@id='pnnext']
或
//a[@class='pn']
但是想要同时选择这两个属性,就不知道如何写了。
【解决过程】
1.参考:
XPATH – selection based on multiple attribute values
得到对应的写法:
//a[@id='pnnext' and class='pn']
所以去用:
HtmlNode nextHtmlNode = rootHtmlNode.SelectSingleNode("//a[@id='pnnext' and class='pn']");
结果找不到。
其中,确定html中是有:
<a href="/search?q=weight+loss+site:.edu+inurl:blog+%22post+a+comment%22+-%22you+must+be+logged+in%22&newwindow=1&safe=strict&ei=yU13UZy6GsiZiAfqmYCQCA&start=10&sa=N" class="pn" id="pnnext" style="text-decoration:none;text-align:left"><span class="csb gbil ch" style="background-position:-96px 0;width:71px"></span><span style="display:block;margin-left:53px;text-decoration:underline"><b>下一頁</b></span></a> |
的。
很是诡异。
2.换成:
HtmlNode nextHtmlNode = rootHtmlNode.SelectSingleNode("//a[@id='pnnext' and @class='pn']");
试试,然后就可以了。
【总结】
Xpath中,要选择多个属性的写法是:
//a[@id='pnnext' and @class='pn']
就可以匹配到:
<a … class="pn" id="pnnext" …">xxx</a> |
了。
转载请注明:在路上 » 【已解决】C#中的Xpath选择多个属性