我正在阅读 XDocument。如何从 XDocument 中删除所有注释行。
我尝试过
doc.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove();
但这仅删除带有注释的第一级节点,而内部级节点保持原样。
有什么办法可以删除所有注释行。我相信一定有!!! ;)
任何解决方案。
而不是Where(x => x.NodeType == XmlNodeType.Comment)
我会简单地使用OfType<XComment>()
, as in
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>
所以所有评论都被删除了。如果您仍然遇到问题,请发布示例,以便我们重现问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)