HtmlAgilityPackで空白を保持する

c# html-agility-pack html-parsing

質問

私は、HTMLのアジリティパックを使用してHTML文字列内のテキストを強調表示しようとしています。私は<span class="highlight">でテキストを置き換えることができますが、テキストを置き換えると、spanタグの周りの空白が消えます。たとえば、テキストが"This text will be highlighted"場合、 "This text will be<span class='highlighted'>highlighted</span>"になり、空白はspanタグの前になります。これにより、スパンの前後の単語がスパンテキストとマージされます。私は単純にそのような再帰的ループを行います:

  1. 最初の子ノードを取得する
  2. ノードが#textであれば、 node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. ノードに子ノードがある場合ステップ1
  4. 次の兄弟に移動し、ステップ1に進む

それから私は、取得InnerHtmlHtmlDocument結果として。私は前に置くスペースを試してみました<spanと後</span>が、それは、それらを削除しました。私はHtmlDocument.OptionWriteEmptyNodes = true;を試しHtmlDocument.OptionWriteEmptyNodes = true;どちらもうまくいかなかった。私はHtmlDocumentを作成する前とhtml文字列を取得した後で、すべての"\n""\t"文字をスペースにHtmlDocument 、どちらにも影響しませんでした。

Html Agility Packを使用しているときに空白を保存するにはどうすればよいですか?

受け入れられた回答

実際にはHtmlDocument.OptionWriteEmptyNodes = true;私がしたいことをした。私は今気づいた。




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