如何使用 HTMLAgilityPack 抓取标签前的文本
本文关键字:文本 标签 抓取 何使用 HTMLAgilityPack | 更新日期: 2023-09-27 18:32:22
假设我有这个HTML字符串:
<a href="hello">These are some links</a><br>1234 - <a id="1234" href="#">My Number 1</a><br>4321 - <a href="#">My Number 2</a>...
我想提取 <br>
标签 (1234 -)、<a>
标签的内部文本 (My Number 1) 以及 <a>
标签 (1234) 的 id
属性。我正在使用 HTMLAgilityPack 来帮助解析我获得的 HTML 数据。
到目前为止,我已经尝试这样做:
// mNodes = code to get html string I want to parse
HtmlNode mNumberListNodes = mNodes[1]; // mNodes[1] is equal to a string as shown above
List<HtmlNode> mNumberNodes = mNumberListNodes.Descendants("a").ToList();
我正在使用调试点来停止并查看每个 HtmlNode 中的先前子节点,但我找不到相应的数字文本。
有人有任何在C#中使用HTMLAgilityPack的经验可以帮助我吗?
我相信
mNodes.InnerText
属性将为您提供所有不在 HTML 标签中的文本,特别是您想要的"1234"。文本本身不是 DOM 中的节点。
假设上面的代码是正确的,要获取 id 值,请使用:
mNumberListNodes.Descendants("a").ToList()[0].Attributes["id"].Value
我在这个库和正则表达式中使用 XPath 取得了很好的成功。