c# - 关于XmlTextWriter的几个问题

标签 c# .net xml xml-serialization xmltextwriter

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

首先:如何在每个 writer.WriteEndElement(); 之后添加新行.我找到了使用 writer.WriteWhitespace("\n"); 的示例但它似乎没有产生任何新行。

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

第三:由于我将此附加到以前的文件,因此我删除了主要父项的结束标记,以便我可以添加此新数据。我希望我能有一个 writer.WriteEndElement();关闭最终标签,但由于我在编写时没有创建开始标签,所以它似乎没有意识到有一个开放标签。有没有好的方法可以做到这一点,或者我应该以代码结尾来编写 </closingTagName>在文件末尾。

如有任何意见或建议,我们将不胜感激。

最佳答案

试试这个:

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 />

关于c# - 关于XmlTextWriter的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6488471/

相关文章:

c# - IQueryable查询数据数

c# - 使用具有备用内容类型的 c# web api

c# - 设置Assembly Version并通过反射获取它 - 一直是1.0.0.0版本?

c# - 当字符串长度大于 32768 个字符时,.net 序列化器反序列化失败

php - 如何使用 PHP dom 设置元素的 id?

通过命名空间重用 C# 代码

c# - 我可以使用哪些项目模板来创建 winform dll 库?

c# - 冲突的命名空间解析

Android 相对布局中心水平与另一个 View

xml - 如何从 Perl 中的 XML 文档中删除重复注释?