Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何执行以下XPath查询?_Xml_Xpath_Xml Parsing_Html Parsing_Html Agility Pack - Fatal编程技术网

Xml 如何执行以下XPath查询?

Xml 如何执行以下XPath查询?,xml,xpath,xml-parsing,html-parsing,html-agility-pack,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标签 请记住,有很多不同的div标记,但只有一个包含带有“E-mail:”内部文本的标记 我要分析的是span标记的值

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

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

电邮:
价值
... 还有更多的div标签
请记住,有很多不同的div标记,但只有一个包含带有“E-mail:”内部文本的标记

我要分析的是span标记的值,其中粗体标记等于“E-mail:”

我知道我可以做类似于
(“//div//div[contains(@text(),'E-mail:'))]的事情。innerText;

但是我想通过检查粗体标记是否包含电子邮件,而不仅仅是整个div标记的内部文本来实现这一点

//div/div[b = 'E-mail:']/span/text()
但是,最后一个
text()
是可选的

//div/div[b = 'E-mail:']/span
也可以。前者提供文本节点,后者提供
元素

如果它们不是包装在
中,而是相互跟随:

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


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

我明白了。但是不应该是//div/div/[b='E-mail:']/span//div/div[b='E-mail:']/span?至少这对我来说是有效的。然后我再次在C#.DAMNIT中使用HtmlagilitPack。当然它应该是.Typo。-HTML敏捷包的API中有
.innerText
,你很好地使用它。我明白了-非常感谢你的帮助:)我是XPath的新手,所以像这样的答案很棒!