我的目标是使用C#代码以编程方式缩进手动编写的XML文档。
目前我正在使用指定here的XmlWriter缩进它。
但我仍有两个问题:
<element>text <subElement></subElement> </element>
将缩进至:
<element>text<subElement></subElement></element>
我猜两个上述问题实际上都是同一个问题。
答案 0 :(得分:1)
通常,将空格插入XML文档可能会改变文档的语义。
但是,如果您确实希望通过XML嵌套缩进行(没有重排),则可以配置大多数XML解析器附带的序列化程序来执行此操作。
或者您可以将文档放在配置为缩进的XSLT样式表中。
这些方法中的任何一种都比自己编写方法简单,除非我错过了你的问题描述中的某些内容,否则他们应该做你需要的。
答案 1 :(得分:1)
如果您使用的是XmlWriter,则可以创建一个新的XmlWriterSettings对象来传递您的设置。在这里,您可以设置缩进,NewLineHandling和许多其他有用的东西。
XmlWriterSettings set = new XmlWriterSettings();
set.NamespaceHandling = NamespaceHandling.OmitDuplicates;
set.OmitXmlDeclaration = true;
set.DoNotEscapeUriAttributes = false;
set.Indent = true;
set.NewLineChars = "\n";
set.IndentChars = "\t";
set.NewLineHandling = NewLineHandling.None;
// Make any other changes... up to you
XmlWriter writer = XmlWriter.Create(Console.Out, set);
// You can use your writer with the passed settings