XML 追加到现有 XML 时采用格式设置

本文关键字:XML 格式 设置 追加 | 更新日期: 2023-09-27 17:56:45

我有一个现有的XML文件。新内容通过XmlWriter(或XmlTextWriter)添加到其中并不重要,因为两者都表现出相同的行为)。

问题:
新内容的格式不使用缩进。

XmlWriterIndent=trueIndentChars设置为空格的示例输出:

<?xml version="1.0"?>
<RootContext Type="ETSP">
<Root><Element1>1</Element1><Element2>2</Element2><Element3>3</Element3><Element4>4</Element4><Element5>5</Element5></Root></RootContext>

使用此示例代码创建其他 XML 内容,将其添加到现有 XML ( <RootContext Type="ETSP"> ... ):

        XElement srcTree = new XElement("Root",
            new XElement("Element1", 1),
            new XElement("Element2", 2),
            new XElement("Element3", 3),
            new XElement("Element4", 4),
            new XElement("Element5", 5));

我附加的现有XML是通过XmlTextReader/XElement.Load()读取的。

现在:在创建新的XML(使用相同的设置)时会发生这种情况,该XML仅包含上面生成的代码片段:

<?xml version="1.0"?>
<Root>
   <Element1>1</Element1>
   <Element2>2</Element2>
   <Element3>3</Element3>
   <Element4>4</Element4>
   <Element5>5</Element5>
</Root>

伟大。正确缩进,格式化 - 正是我想要的。

现在 - 如何在追加到现有 XML 内容时获取缩进格式?

XML 追加到现有 XML 时采用格式设置

FWIW - 使用John Saunders建议的方法并XDocument工作得很好。

新内容将以所需的格式追加到现有文档中。