3

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 が得意ではないので、それについて何か助けていただければ幸いです。

どんな助けでも大歓迎です。

4

1 に答える 1

10

HtmlAgilityPack の HtmlDocument は IXpathNavigable を実装ているため、標準の .NET XPath エンジンを使用します。特に System.Xml.XPath について説明している場合は、XPath 1.0 のすべてのドキュメントが適用されます。

「//comment()」はすべてのコメントを検索します
「//meta」はすべての「meta」要素を検索します

HtmlDocument はXmlDocumentと非常によく似ているように設計されているため、それに関する例とチュートリアルはある程度適用できます。

いくつかの MSDN リンク:

于 2010-03-02T14:43:10.280 に答える