当前位置:  开发笔记 > 编程语言 > 正文

使用HTML Agility Pack抓取元标记和注释

如何解决《使用HTMLAgilityPack抓取元标记和注释》经验,为你挑选了1个好方法。

我一直在寻找使用HTML Agility Pack的教程,因为它似乎做了我想做的一切,但似乎对于这样一个强大的工具,它在互联网上几乎没有什么噪音.

我正在编写一个简单的方法,它将根据名称检索任何给定的标记:

public string[] GetTagsByName(string TagName, string Source) {
    ...
}

这可以使用正则表达式轻松完成,但我们都知道使用正则表达式解析HTML是不对的.到目前为止,我有以下代码:

...
// TODO: Clear Comments (can this be done or should I use RegEx?)
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(Source);
ArrayList tags = new ArrayList();
string xpath = "//" + TagName;
foreach (HtmlTextNode node in doc.DocumentNode.SelectNodes(xpath) {
    tags.Add(node.Text);
}
return (string[])tags.ToArray(typeof(String));

我希望能够首先从HTML中删除所有注释,然后根据其名称返回正确的标记.如果可能的话,我还想根据属性返回某些元标记,例如机器人.我对xpath不太好,所以任何帮助都会很好.

任何帮助将非常感激.



1> Lachlan Roch..:

HtmlAgilityPack的HtmlDocument实现了IXpathNavigable,因此它使用标准的.NET XPath引擎.任何XPath 1.0文档都适用,特别是如果它涉及System.Xml.XPath.

"// comment()"查找所有注释
"// meta"查找所有"元"元素

HtmlDocument的设计看起来非常像XmlDocument,因此有关它的示例和教程将在某种程度上适用.

一些MSDN链接:

XPath参考

例子

XPath函数

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有