如何使用 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# ASP.Net 从 XML 文档中获取特定 XML 元素的列表?
如何使用 C# 通过读取另一个 XML 文件来创建 XML 文档?