Nit*_*rpe 6 linq-to-xml c#-4.0
我正在阅读XDocument.如何从XDocument中删除所有注释行.
我试过了
doc.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove();
Run Code Online (Sandbox Code Playgroud)
但是这只删除了带注释的第一级节点,并且内层节点保持不变.
有没有办法删除所有注释行.我相信一定有!!! ;)
任何解决方案
Mar*_*nen 11
而不是Where(x => x.NodeType == XmlNodeType.Comment)我会简单地使用OfType<XComment>(),如在
doc.DescendantNodes().OfType<XComment>().Remove();
Run Code Online (Sandbox Code Playgroud)
但是这两种方法都应该删除所有级别的注释节点.
这是一个例子:
XDocument doc = XDocument.Load("../../XMLFile1.xml");
doc.Save(Console.Out);
Console.WriteLine();
doc.DescendantNodes().OfType<XComment>().Remove();
doc.Save(Console.Out);
Run Code Online (Sandbox Code Playgroud)
对于样本,我得到了输出
<?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>
Run Code Online (Sandbox Code Playgroud)
所以所有评论都已删除.如果您仍然遇到问题,请发布样本,以便我们重现问题.
| 归档时间: |
|
| 查看次数: |
2958 次 |
| 最近记录: |