使用XmlWriter编写格式化的XML

Non*_*one 16 c# xml xmlwriter xml-formatting windows-phone-7

我正在尝试将XML文件写入隔离存储,但我想将其格式化为: -

<SampleData>
  <Item Property1="AliquaXX" />
  <Item Property1="Integer" />
  <Item Property1="Quisque" />
  <Item Property1="Aenean" />
  <Item Property1="Mauris" />
  <Item Property1="Vivamus" />
  <Item Property1="Nullam" />
  <Item Property1="Nam" />
  <Item Property1="Sed" />
  <Item Property1="Class" />
</SampleData>
Run Code Online (Sandbox Code Playgroud)

但如果我能解决这个问题,我会感到烦恼,任何人都可以帮忙吗?

谢谢,挣扎的新手.

Jon*_*eet 23

我怀疑你需要创建一个XmlWriterSettings你想要的行为(缩进等),然后将其传递给XmlWriteron创建.设置Indent为true可能就足够了:

XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
using (XmlWriter writer = XmlWriter.Create(..., settings))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)


Sam*_*Sam 12

您可以通过XmlWriterSettings自定义xml输出.

您没有包含任何代码,但可以在创建XmlWriter时设置XmlWriterSettings.您也可以使用以下内容:

myXmlWriter.Settings.Indent = true;
myXmlWriter.Settings.IndentChars = "     "; // note: default is two spaces
myXmlWriter.Settings.NewLineOnAttributes = false;
myXmlWriter.Settings.OmitXmlDeclaration = true;
Run Code Online (Sandbox Code Playgroud)

  • 这是不可能的,因为XmlWritterSettings.Ident是只读的,这样做会引发类型'System.Xml.XmlException'的异常 (5认同)
  • @ r1verside在创建编写器之前创建一个XmlWriterSettings,设置所需的设置然后创建一个XmlWriter并传递设置,XmlWriter接受一个XmlWriterSettings参数.我知道这是一个古老的话题,但它可能会帮助其他人.是的,例如Indent属性是public,但在尝试更改它时会抛出异常. (3认同)