我有一个像这样的HTML DOM:
<div class="productcontainer">
<div class="image jsThumbnailReplace">
<a href="">
<img src="/img/noimagemedium.jpg"/>
</a>
</div>
<div class="productdata"
<div class="descriptionsection">
<div class="title">title</div>
</div>
</div>
</div>
我想只在图片标签中的来源包含“noimagemedium”时才选择标题文字。我使用Visual Studio 2010与VB.Net和HTML Agility包来实现这一目标。调试器说XPath表达式无效。
我认为这个XPath应该这样做但它不起作用:
//div[@class='descriptionsection']/div[@class='title'][//div[@class='productcontainer']/div[contains(@class, 'image') and contains(@class, 'jsThumbnailReplace')]/a/img[contains(@src, 'noimagemedium')]]
显然语法错误但我无法理解。感谢帮助:)
答案 0 :(得分:0)
我自己找到了解决方案。关键是在第一个“和”之后。你不需要一个开口支架,你可以直接调用路径。需要注意的是,contains()不会搜索原始节点文本,您必须指定文本或属性。考虑到这些知识,我可以构建XPath。
//div[@class='productcontainer' and div[1]/a/img[contains(@src, 'noimagemedium')]]/div[@class='descriptionsection']/div[@class='title']"