如何在XmlWriter上为特定元素节点设置Indent属性

时间:2013-01-09 13:47:38

标签: c# xmlwriter

对不起,如果标题令人困惑,这就是我想要实现的目标。我有一个正在创建的XmlWriter对象并传递给方法

public static void foo(XmlWriter xw)
{
   xw.WriteStartElement("root");
}

此时XmlWriter已实例化,并且已经编写了Xml声明。现在,在编写根元素之后,我需要将XmlWriter上的Indent属性设置为true(在创建XmlWriter时将其设置为false)。像这样的东西

public static void foo(XmlWriter xw)
{
   xw.WriteStartElement("root");
   // xw.Settings.Indent = true; - I know this won't work
   // continue writing elements...
}

无法找到如何在该点设置缩进的方法。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用XmlTextWriter。然后,您可以将Indentation属性设置为要缩进的空格数。 http://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.indentation.aspx

要使用Indent属性,您不能拥有混合内容 http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.indent.aspx

“只要元素不包含混合内容,元素就会缩进。一旦调用WriteString或WriteWhitespace方法写出混合元素内容,XmlWriter就会停止缩进。一旦混合内容元素关闭,缩进就会恢复。“