xpath - 使用HTML Agility Pack从特定节点捕获内部文本

标签 xpath html-agility-pack

我正在尝试从以下html代码段中提取文本“ Record No:1”和两个日期:

<table class="Report">
<tbody>
<tr>
<td>
<font><b>Record No: 1</b><br>
<i>Original Date</i>: 12/16/2011<br>
<i>Original Entered Date</i>: 12/16/2011
<br>
<br>
</font>
</td>
</tr>
</tbody>
<table>


使用HTMLAgilityPack和以下代码,我已经获得了记录号,但是不确定如何获取日期。

var recordNum =report.Descendants()
.Where(a=>a.InnerText.Contains("Record No:"))
.Where(a => a.Name == "#text")
.First().InnerText;


我需要以某种方式能够在“原始日期”节点之后获取文本。

最佳答案

我需要以某种方式能够在“原始日期”节点之后获取文本。


您可以使用以下XPath选择位于i元素之后的文本节点,其中内部文本等于“原始日期”:

//i[.='Original Date']/following-sibling::text()


使用XPath如下,例如:

var doc = new HtmlDocument();
....
var xpath = "//i[.='Original Date']/following-sibling::text()";
var result = doc.DocumentNode.SelectSingleNode(xpath);
Console.WriteLine(result.InnerText);


Demo

输出:

: 12/16/2011

关于xpath - 使用HTML Agility Pack从特定节点捕获内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40552750/

相关文章:

selenium - 如何使用 XPath 选择器选择跨度内的属性?

c# - 在 C# 中使用 xpath 选择具有不同类的多个 div 节点

c# - 如何删除所有隐藏的元素?

c# - 使用 HTML Agility Pack 查找多个表

c# - 如何在Java中转换C# InnerText XPath方法?

html - 根据已知嵌套 td 元素的表格标题的 xpath

xml - xpath - if else 结构

python - 元素树、解析XML没有出现在QLineEdit中

c# - 如何从 WPF WebBrowser 获取 HtmlElementCollection

c# - HtmlAgilityPack NextSibling.InnerText 值为空