我一直在寻找有关使用 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 不是很好,所以任何帮助都会很好。
任何帮助将非常感激。