如何使用 C# 在 XML 文档中添加新元素

Posted

技术标签:

【中文标题】如何使用 C# 在 XML 文档中添加新元素【英文标题】:How to Add a new element in XML document using c# 【发布时间】:2020-08-30 13:04:39 【问题描述】:

我需要向已经存在的 XML 文档添加一个新元素。这是 XML:

而我需要的是将此元素添加到元素的末尾

 <DATA>
    <UBL21>true</UBL21>
    <Partnership>
        <ID>900430556</ID>
        <TechKey>20c68c93ee595efaf227db3bc5d0e3416776bc487ec7058b9157c874eaa741a2</TechKey>
        <SetTestID>dsfgsdghfsdgfsdfg</SetTestID>
    </Partnership>
</DATA>

预期结果

这是我创建 xml 的方法

public void guardar_nuevo_xml(InvoiceType df, string numero_factura)

    //Here start xml df is an object from which I serialize the xml
    XmlSerializer x = new XmlSerializer(df.GetType());
    //path for save new document
    string path = @"C:\Users\moralesm\source\repos\Pruebas_Nilo\Nilo\xml\Factura" + numero_factura + ".xml";
    //write the new xml
    TextWriter writer = new StreamWriter(path);
    // the new xml is serialized with an object
    x.Serialize(writer, df);


【问题讨论】:

【参考方案1】:

你可以像这样添加元素:

 XDocument doc1 = XDocument.Load("Your Xml Path"); 
 XElement dataElement = new XElement("DATA");
 doc1.Root.Add(dataElement);
 dataElement.Add(new XElement("UBL21", "true"));
 XElement partnerShipElement = new XElement("Partnership");
 dataElement.Add(partnerShipElement); 
 partnerShipElement.Add(new XElement("ID", "900430556"));
 partnerShipElement.Add(new XElement("TechKey", "20c68c93ee595efaf227db3bc5d0e3416776bc487ec7058b9157c874eaa741a2"));
 partnerShipElement.Add(new XElement("SetTestID", "dsfgsdghfsdgfsdfg"));

我的测试 XML:

<test>
  <name>Hidayet</name>
</test> 

新的 XML:

<test>
  <name>Hidayet</name>
  <DATA>
    <UBL21>true</UBL21>
    <Partnership>
      <ID>900430556</ID>
      <TechKey>20c68c93ee595efaf227db3bc5d0e3416776bc487ec7058b9157c874eaa741a2
      </TechKey>
      <SetTestID>dsfgsdghfsdgfsdfg</SetTestID>
    </Partnership>
  </DATA>
</test>

保存新的xml文件:

doc1.Save("New Xml File Path");

【讨论】:

以上是关于如何使用 C# 在 XML 文档中添加新元素的主要内容,如果未能解决你的问题,请参考以下文章

如何搜索 xml 节点值,然后在 c# 中为该元素创建新属性

使用C#进行XML文档读取

如何使用 C# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?

如何使用 C# 通过读取另一个 XML 文件来创建 XML 文档?

如何在 c# .net CF 3.5 中使用 XmlDocument 向 xml 添加属性

如何使生成的类包含 XML Schema 文档中的 Javadoc