繁体   English   中英

VB Agility Pack XPath根据另一个子节点值在父级中选择子节点

[英]VB Agility Pack XPath select sub node in parent based on another sub nodes value

我有这样的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')]]

显然语法是错误的,但我无法弄清楚。 感谢您的帮助:)

我自己找到了解决方案。 关键在第一个“和”之后。 您不需要开括号,可以直接调用路径。 需要注意的重要一点是,contains()不会搜索原始的节点文本,您必须指定文本或属性。 有了这些知识,我就可以构建该XPath。

//div[@class='productcontainer' and div[1]/a/img[contains(@src, 'noimagemedium')]]/div[@class='descriptionsection']/div[@class='title']"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM