XmlWriter.WriteRaw缩进

时间:2009-11-24 11:08:58

标签: c# xml indentation

我有一个类似XML indenting when injecting an XML string into an XmlWriter的问题。

我还使用XmlWriter.WriteRaw将XML片段输出到xml节点。这个文档片段不遵循这个很好的标识。上面的帖子给出的答案不适用于XML片段。好吧,我可以使用XmlReader阅读该片段,但WriteNode不适用于文档片段(请参阅http://msdn.microsoft.com/en-us/library/1wd6aw1b.aspx)。

有关如何欺骗以获得适当缩进的任何提示?

感谢任何提示

2 个答案:

答案 0 :(得分:1)

这是一个老问题,但是今天我遇到了同样的问题。我的解决方案是使用XmlDocument.WriteContentTo方法:

var innerXmlDoc = new XmlDocument();
innerXmlDoc.LoadXml("<params><param id=\"param1\" value=\"value1\"/></params>");
innerXmlDoc.WriteContentTo(xmlWriter);

https://dotnetfiddle.net/a2928r

答案 1 :(得分:0)

您可以在包含xml片段的内存中构建有效的Xml-Document。然后使用XmlReader阅读此文档(例如,使用MemoryStream)并让XmlWriter写入缩进的xml。

更快的方法是通过操纵字符串来自己缩进xml。搜索<,增加嵌套级别并添加缩进空格。如果您发现</或自我结束标记会降低嵌套级别并附加\n

我不认为你的问题有一个快速的很好的解决方案,但我可能错了......