3

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

第一:如何在每个writer.WriteEndElement();. 我找到了使用的例子,writer.WriteWhitespace("\n");但它似乎没有产生任何新的线条。

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

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

任何意见或建议表示赞赏。

4

1 回答 1

2

试试这个:

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 />
于 2011-06-27T04:14:59.157 回答