提问人:Greg Gum 提问时间:6/14/2023 更新时间:6/14/2023 访问量:24
如何选择后代节点具有属性的节点
How to select node where descendant node has attribute
问:
我正在解析一封 html 电子邮件。我需要从以下html中获取href属性:
<a href="https://sample.com/us/en/suv-rental/united-states/orlando-fl/jeep/grand-cherokee/12345">
<img class="m_3371787045960899181vehicle-image" width="360" height="216" src="https://images.sample.com/media/vehicle/images/12345.620x372.jpg" alt="Jeep Grand Cherokee" title="Jeep Grand Cherokee">
</a>
选择它的唯一方法是找到具有图像的图像,该图像具有包含“https://images.sample.com”的 srca
我需要的是:https://sample.com/us/en/suv-rental/united-states/orlando-fl/jeep/grand-cherokee/12345
我正在努力让它工作。这是我目前所拥有的:
HtmlNode vehicleNode = document.DocumentNode.SelectNodes("//a").Where(x => x.DescendantNodes.Attributes["src"].Value.Contains("images.sample.com")).First();
但这并不能编译,因为您不能使用,但我找不到正确的方法来执行此操作。x.DescendantNodes...
那么如何选择使用递减节点属性呢?
答:
1赞
Martin Honnen
6/14/2023
#1
看来,就 XPath 而言,您可以使用 .//a[img/@src[starts-with(., 'https://images.sample.com')]]
评论
0赞
Greg Gum
6/15/2023
这很完美。
评论