HTMLAgilityPackによるXHTML解析

c# html-agility-pack

質問

HTMLAgilityPackを使って見つかった要素の中に、以下の要素のリストがあります。

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>

私がしなければならないことは、タグのすべてのテキストを解析して、そこにすべての巨大なジャンボを入れないことです。私は(一見!)すべてを試しましたが、常にこのように見えます:

ホールド
レベリング/デイリー&イベントガイド($ 50.00)

時々好きです:

ホールド
レベリング
/デイリー&イベントガイド($ 50.00)

そのようないくつかのバリエーションがあります。私は文字列の各文字をバイトとしてプリントアウトすることさえ行ってきましたが、改行やフィードは見つけられませんでした。ここでは、参照用のHTMLの完全なソースがあり、ページから直接コピーされています。

<option value="13"><span style="color: #0000ff;">Alliance</span> Leveling Guide ($30.00)</option>


<option value="12"><span style="color: #cc0000;">Horde</span> Leveling Guide ($30.00)</option>

<option value="46"><span style="color: #cc0000;">Horde</span> Dailies & Events Guide ($25.00)</option>

<option value="67"><span style="color: #cc0000;">Horde</span> Leveling / Dailies & Event Guide ($50.00)</option>


<option value="11"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Leveling Guide ($50.00)</option>

<option value="97"><span style="color: #0000ff;">Alliance</span> Achievements & Professions Guide ($20.00)</option>

<option value="98"><span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($20.00)</option>


<option value="99"><span style="color: #0000ff;">Alliance</span> &amp; <span style="color: #cc0000;">Horde</span> Achievements & Professions Guide ($30.00)</option>

人気のある回答

デフォルトでは、 <OPTION>タグはHtml Agility Packによって "Empty"として扱われ</OPTION> 。つまり、 </OPTION>閉じる必要はありません。このため、XPATHを捕まえるのは簡単ではありません。これは、HtmlNode.ElementFlagsコレクションを使用して変更できます。

ここでは、あなたが望むことをするべきコードがあります:

HtmlDocument doc = new HtmlDocument();
HtmlNode.ElementsFlags.Remove("option");
doc.LoadHtml(yourHtml);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//option"))
{
    Console.WriteLine(node.InnerText);
}


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