关于XmlTextWriter的几个问题

本文关键字:几个问题 XmlTextWriter 关于 | 更新日期: 2023-09-27 18:00:22

我是编辑XML的新手,我对遇到的问题有一些疑问。

第一:如何在每个writer.WriteEndElement();之后添加新行。我找到了使用writer.WriteWhitespace("'n");的示例,但它似乎没有任何换行符。

第二:由于前面的问题,我认为这可能没有任何作用,但我想在最后使用writer.Formatting = Formatting.Indented;来缩进我的代码,但它似乎没有任何作用(很可能是因为我没有新行)。

第三:由于我将这个附加到以前的文件中,所以我去掉了主父级的结束标记,这样我就可以添加这个新数据。我希望我能有一个writer.WriteEndElement();来关闭最后的标签,但由于我在写作时没有创建一个打开的标签,它似乎没有意识到有一个打开标签。有没有一个好的方法可以做到这一点,或者我应该在文件末尾写</closingTagName>的代码。

欢迎提出任何意见或建议。

关于XmlTextWriter的几个问题

试试这个:

using (var stringWriter = new StringWriter())
using (var writer = new XmlTextWriter(stringWriter))
{
    writer.WriteRaw("</closingTagName>");
    writer.Formatting = Formatting.Indented;
    writer.Indentation = 10;
    writer.WriteStartElement("Element1");
    writer.WriteStartElement("Element2");
    writer.WriteString("test");
    writer.WriteEndElement();
    writer.WriteEndElement();
    writer.WriteWhitespace(Environment.NewLine);
    writer.WriteStartElement("Element3");
    writer.WriteEndElement();
    var result = stringWriter.ToString();

结果:

</closingTagName>  -- Closing tag
<Element1>
          <Element2>test</Element2>  -- Line with the ident 10.
</Element1>
              -- extra new line
<Element3 />