C# XML 编写器 - 使用哪个 types/objects?

C# XML writer - Which types/objects to use?

简介: 嗨,各位编码员;我创建了一个项目来创建 XML 文件以使用特定设置自动创建文件。

问题:我的知识不足以重现这个。我找不到关于两个问题的正确信息;

一个。如何在元素内创建元素(使用第二个 writestartelement 关闭第一个);

乙。第 3 行有一个我不认识的元素。谁能告诉我应该在网上寻找哪种类型?

<userEnvironmentSettings>
    <conditions>
        <ref n="Printer - PR123456.xml" />
    </conditions>
</userEnvironmentSettings>

当前代码(会保持最新)

                writer.WriteStartElement("userEnvironmentSettings");
                writer.WriteStartElement("conditions");
                writer.WriteAttributeString("ref n", "Printer - " + printerName + ".xml\"");
                writer.WriteEndElement();
                writer.WriteEndElement();
                writer.Flush();

结果:无法在 Attributestring 中设置空格的 $exception。

您需要一个名为 ref 元素 和一个名为 n 属性。您尝试做的是在 conditions 元素中创建一个名为 ref n 的属性,这是不允许的(因为它包含空格)并且不是您想要的。所以这会起作用:

writer.WriteStartElement("userEnvironmentSettings");
writer.WriteStartElement("conditions");
writer.WriteStartElement("ref");
writer.WriteAttributeString("n", "Printer - PR123456.xml");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();

但是,除非您有充分的理由,否则我强烈建议您不要直接使用XmlWriter。您可以使用更简单的 higher-level API。例如:

var doc = new XDocument(
    new XElement("userEnvironmentSettings",
        new XElement("conditions",
            new XElement("ref",
                new XAttribute("n", "Printer - PR123456.xml")
            ))));
doc.Save(fileName);