C#のhtml parserを使ってみた。
以前、jspiderというクローラとjavaのhtml parserでタグリムーバを作ったのですが、C#でもhtml parserを使う機会があったので紹介します。とても便利でしたよ。
developer.comの2ページ目にソースが記述されています。
使い方はこんな感じ。
HTML.ParseHTML parse = new HTML.ParseHTML();
parse.Source = "<html><head><title>html parser test</title></head><body><a href=\"http://mojalog.com\">mojalog</a></body></html>";
// 平文のバッファ
string item = "";
// 全htmlバッファ
string allDocs = "";
while ( !parse.Eof() )
{
char ch = parse.Parse();
if ( ch == 0 )
{
AttributeList tag = parse.GetTag();
if (item != "")
{
allDocs = allDocs + item;
}
string atr = "";
// タグ内のアトリビュートをすべて取得する
for (int idx = 0; idx < tag.Count; idx++)
{
// tag[ "href" ]とかでも取れるみたい。
atr = atr + " " + tag[ idx ].Name + "=\"" + tag[ idx ].Value + "\"";
}
// tag.Nameにタグ名が html, a, /a,のように入ってくるみたい
allDocs = allDocs + "<" + tag.Name + atr + ">";
item = "";
}
else
{
item = item + ch;
}
}
Console.WriteLine( allDocs );




