0

誰かがこれをしましたか?基本的に、h1、h2、emなどの基本的なタグを保持してhtmlを使用したい; img および a タグ内のすべての非 http アドレスを消去します。他のすべてのタグを HTMLEncode します。

HTML エンコーディングの部分で行き詰まっています。「node.ParentNode.RemoveChild(node);」を実行するノードを削除することを知っています。node はクラス HtmlNode のオブジェクトです。ただし、ノードを削除する代わりに、HTMLEncode を使用したいと考えています。

4

2 に答える 2

1

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

破棄したい要素の子を処理したくない場合は、 OuterHtml を使用できるはずです...次のようなものが機能する可能性があります。

node.AppendChild(new HtmlTextNode { Text = HttpUtility.HtmlEncode(nodeToDelete.OuterHtml) });
于 2008-09-23T20:08:30.283 に答える
0

上記の答えはほとんどそれをカバーしています。ただし、追加することが1つあります。

特定のノードを変更する必要はありませんが、すべてのノードを変更する必要があるため、上記のコードはおそらくifステートメントでラップされたメソッドになります(HtmlEncodeに必要なタグであることを確認するため)。さらに重要なことに、Agility Packは序数でノードを公開しないため、ドキュメント全体を反復処理することはできません。再帰はそれを回避する最も簡単な方法です。あなたはおそらくすでにこれを知っています...

私は同様の問題に取り組み、使用を歓迎するシェルコード(C#)をいくつか持っています:http: //dev.forrestcroce.com/normalizer-of-web-pages-qualifier-of-urls/2008-12 -09 /

于 2008-12-10T06:15:20.023 に答える