htmlのagility packを使ってhtmlencodeをどうやって作っていますか?


0

誰もこれをしましたか?基本的には、h1、h2、emなどの基本タグを保持してhtmlを使いたいです。 img内の非httpのアドレスとタグをすべて消去します。他のすべてのタグをHTMLEncodeします。

HTMLエンコーディングの部分が固まっています。私はあなたが "node.ParentNode.RemoveChild(ノード);を行うノードを削除することを知っているnodeはHtmlNodeクラスのオブジェクトです。しかし、ノードを削除する代わりに、HTMLEncodeしたい。

1

不要な要素を表すノードを削除する必要があります。エンコードされたHTMLは、テキストノードとして再追加する必要があります。

あなたが捨てたい要素の子を処理したくない場合は、あなただけのOuterHtmlを使用することができるはず...このような何かがうまくいくかもしれない:

node.AppendChild(new HtmlTextNode { Text = HttpUtility.HtmlEncode(nodeToDelete.OuterHtml) }); 

0

答え上のほうがそれをかなりカバーしています。しかし、追加することが1つあります。

特定のノードは変更したくないのですが、上記のコードはおそらくifステートメントでラップされたメソッドになります(HtmlEncodeにするタグであることを確認するため)。さらに重要なのは、Agility Packはノードを序数で公開しないため、ドキュメント全体を反復することができないということです。再帰はそれについての最も簡単な方法です。 http://dev.forrestcroce.com/normalizer-of-web-pages-qualifier-of-urls/2008-12-09/

:あなたはおそらくすでにあなたが使用することを歓迎しているよりも、私は同様の問題に取り組み、そしていくつかのシェルコード(C#)を持っている...

これを知っています