使用XmlTextWriter在c#中用新行(保持适当的缩进)写入值

时间:2014-09-04 02:38:46

标签: c# xmltextwriter

我想要的是这样的:

  <a>
    <b>
      <c>
        value
      </c>
    </b>
  </a>

我试过了:   WriteValue()/ WriteString()不会开始换行:"<c>value</c>"   WriteWhitespace(Environment.NewLine)不会保留缩进:

  <a>
    <b>
      <c>
  value
  </c>
    </b>
  </a>

出于某种原因,我必须使用XmlTextWriter。

2 个答案:

答案 0 :(得分:1)

您必须使用XmlWriterSettings。看代码示例

XmlWriterSettings settings = new XmlWriterSettings();
        settings.Indent = true;
        settings.IndentChars = "\t";
        XmlWriter writer = XmlWriter.Create(@"sample.xml", settings);
        writer.WriteStartElement("a");
        writer.WriteStartElement("b");
        writer.WriteStartElement("c");
        writer.WriteValue("value");
        writer.WriteEndElement();
        writer.WriteEndElement();
        writer.WriteEndElement();
        writer.Close();

答案 1 :(得分:0)

您可以实现一个小型自定义编写器来实现这一目标。请在此处查看我的回答:https://stackoverflow.com/a/33542165/5114784