我有一个类似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)。
有关如何欺骗以获得适当缩进的任何提示?
感谢任何提示
答案 0 :(得分:1)
这是一个老问题,但是今天我遇到了同样的问题。我的解决方案是使用XmlDocument.WriteContentTo方法:
var innerXmlDoc = new XmlDocument();
innerXmlDoc.LoadXml("<params><param id=\"param1\" value=\"value1\"/></params>");
innerXmlDoc.WriteContentTo(xmlWriter);
答案 1 :(得分:0)
您可以在包含xml片段的内存中构建有效的Xml-Document。然后使用XmlReader
阅读此文档(例如,使用MemoryStream
)并让XmlWriter
写入缩进的xml。
更快的方法是通过操纵字符串来自己缩进xml。搜索<
,增加嵌套级别并添加缩进空格。如果您发现</
或自我结束标记会降低嵌套级别并附加\n
我不认为你的问题有一个快速的和很好的解决方案,但我可能错了......