首页 文章

如何使用HTMLAgilityPack在标记之前获取文本

提问于
浏览
0

假设我有这个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> 标签的内部文本(我的号码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可以帮助我的经验吗?

1 回答

  • 0

    我相信

    mNodes.InnerText
    

    属性将为您提供所有不在html标签中的文本,特别是您想要的“1234” . 文本本身不是DOM中的节点 .

    假设上面的代码是正确的,要获取id值,请使用:

    mNumberListNodes.Descendants("a").ToList()[0].Attributes["id"].Value
    

    我使用XPath和这个库以及正则表达式取得了相当不错的成功 .

相关问题