如何进行以下XPath查询?

时间:2013-10-14 15:50:55

标签: xml xpath xml-parsing html-parsing html-agility-pack

基本上我正在使用以下XML:

<div>
    <div>
    <b>E-mail:</b>
    <span>TheValue</span>
    </div>
    ... and more div tags
</div>

请记住,有很多不同的div标签 - 但只有一个包含带有“电子邮件:”的内插文本的标签。

我要解析的是span标记的值,其中粗体标记等于“电子邮件:”。

我知道我可以做("//div//div[contains(@text(), 'E-mail:')].innerText;

之类的事情

但我想通过检查粗体标签是否包含电子邮件而不仅仅是整个div标签的innerText来做到这一点。

1 个答案:

答案 0 :(得分:1)

//div/div[b = 'E-mail:']/span/text()

但是最后一个text()是可选的

//div/div[b = 'E-mail:']/span

也可以。前者为您提供文本节点,后者为<span>元素。

如果它们没有包裹在<div>中,而只是紧跟在一起:

//b[. = 'E-mail:']/following-sibling::span[1]

请注意.innerText是非标准的。您应该在现代浏览器中使用.textContent