gpt4 book ai didi

c#-4.0 - 从XDocument删除所有评论

转载 作者:行者123 更新时间:2023-12-04 13:50:36 26 4
gpt4 key购买 nike

我正在阅读XDocument。如何从XDocument删除所有注释行。

我尝试过

 doc.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove();

但是,这仅删除具有注释的第一级节点,而内部级节点保持原样。

有什么办法可以删除所有注释行。我相信一定有!!! ;)

任何解决方案。

最佳答案

代替Where(x => x.NodeType == XmlNodeType.Comment),我将只使用OfType<XComment>(),如

doc.DescendantNodes().OfType<XComment>().Remove();

但是两种方法都应删除所有级别的评论节点。

这是一个例子:
XDocument doc = XDocument.Load("../../XMLFile1.xml");

doc.Save(Console.Out);

Console.WriteLine();

doc.DescendantNodes().OfType<XComment>().Remove();

doc.Save(Console.Out);

对于样本我得到输出
<?xml version="1.0" encoding="ibm850"?>
<!-- comment 1 -->
<root>
<!-- comment 2 -->
<foo>
<!-- comment 3 -->
<bar>foobar</bar>
</foo>
<!-- comment 4 -->
</root>
<!-- comment 5 -->
<?xml version="1.0" encoding="ibm850"?>
<root>
<foo>
<bar>foobar</bar>
</foo>
</root>

因此所有评论均已删除。如果您仍然遇到问题,请发布样本以使我们重现问题。

关于c#-4.0 - 从XDocument删除所有评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952718/

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