4
我正在阅读XDocument。我如何从XDocument中删除所有注释行。删除所有来自XDocument的评论
我试图与
doc.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Comment).Remove();
但这仅删除第一级节点意见和内部级节点保持原样。
有什么办法可以删除所有注释行。我相信一定有! ;)
任何解决方案。
我正在阅读XDocument。我如何从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>
因此所有评论已被删除。如果你仍然有问题,然后张贴样本,让我们重现这个问题。
以后会保重thanx –
试着做'递归'。 – Iqbal
是不是有任何解决方法与单个查询? –