HTML Agility Packを使用したメタタグとコメントの獲得

.net c# html-agility-pack html-parsing

質問

私は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でそれほど素晴らしいとは言えないので、それに役立つどんな助けも良いでしょう。

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

受け入れられた回答

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

"//コメント()"はすべてのコメントを見つけます
"// meta"はすべての "meta"要素を見つけます

HtmlDocumentは、 XmlDocumentと非常によく似ているように設計されているため、その例やチュートリアルは多少適用可能です。

いくつかのMSDNリンク:



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ