HTMLAgilityPackはInnerHTMLで解析します

c# html-agility-pack

質問

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>

私はdivからToken2を抽出しようとしています

私はToken1とToken3を得ることができます:

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");

HTMLAgilityPackでToken2を直接抽出するにはどうしたらいいですか?

1つの汚れたオプションは、トークン1とトークン2をdoc.DocumentNode.SelectNodes( "// div")のstring.emptyで置き換えることです。InnerText、しかし、HTMLAgilityPackを使ってよりクリーンな方法で行うことができます。

エキスパート回答

テキストはテキストノードにあります。だからあなたは "// div / text()"を見て、連結することができるはずです:

StringBuilder sb = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//div/text()"))
{
    sb.Append(node.Text.Trim());
}
string s = sb.ToString();



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