私はWYSIWYGへの入力をクリーンアップするためにHTMLアジリティパックを使用しています。これはこれを行うための最良の方法ではないかもしれませんが、私は正規表現との接触で爆発する開発者と協力しているので、十分でなければなりません。私は空の段落タグを除去する必要が親ノードがない場合ノードを削除する方法
<p></p>
<p></p>
<p><span><input id="textbox" type="text" /></span></p>
:
私のWYSIWYGコンテンツが(例えば)このようになります。ここでは、私は現時点ではそれをやっている方法は次のとおりです。ただし
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//p");
if (nodes == null)
return;
foreach (HtmlNode node in nodes)
{
node.InnerHtml = node.InnerHtml.Trim();
if (node.InnerHtml == string.Empty)
node.ParentNode.RemoveChild(node);
}
、HTMLは、段落タグは、親ノードを持っていないとParentNode
がnullであるため、RemoveChild
したがって失敗する完全な文書ではありませんので。
タグを削除する別の方法はありません。代わりの方法で誰かを指摘できますか?
'node == null'を設定しますか? – Oded
divにコンテンツ全体をラップし、現在のメソッドを使用してから親を削除しますか? –
「
」のようなケースを指摘したいと思っていました。クリーンアップにはどれくらい重要なのでしょうか?あなたのforeachを進めることは親を最初にチェックし、それが空ではなく、次に子供を見つけ、それを空にして削除するが、親は空であるが、再びチェックされない。 –