gpt4 book ai didi

c# - 如果没有父节点,如何删除节点

转载 作者:行者123 更新时间:2023-11-30 15:39:36 25 4
gpt4 key购买 nike

我正在使用 HTML 敏捷包来清理 WYSIWYG 的输入。这可能不是执行此操作的最佳方法,但我正在与接触正则表达式时爆炸式增长的开发人员合作,因此它必须足够了。

我的所见即所得内容看起来像这样(例如):

<p></p>
<p></p>
<p><span><input id="textbox" type="text" /></span></p>

我需要去掉空段落标签。以下是我目前的做法:

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 不是完整的文档,段落标记没有父节点,因此 RemoveChild 将失败,因为 ParentNode 为空。

不过我找不到其他方法来删除标签,谁能告诉我其他方法?

最佳答案

从技术上讲,第一级元素是文档根的子元素,所以下面的代码应该可以工作:

if (node.InnerHtml == String.Empty) {
HtmlNode parent = node.ParentNode;
if (parent == null) {
parent = doc.DocumentNode;
}
parent.RemoveChild(node);
}

关于c# - 如果没有父节点,如何删除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com