C# 将XElement添加到具有相同命名空间的XDocument
我有一个具有以下结构的XDocument,我想在其中添加一组元素C# 将XElement添加到具有相同命名空间的XDocument,c#,xml,C#,Xml,我有一个具有以下结构的XDocument,我想在其中添加一组元素 <Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"> <CstmrCdtTrfInitn> <GrpHdr> ... </GrpHdr> <!-- loaded nodes go here --> <CstmrCdtTrfInitn> <
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
<CstmrCdtTrfInitn>
<GrpHdr>
...
</GrpHdr>
<!-- loaded nodes go here -->
<CstmrCdtTrfInitn>
</Document>
在
XElement
或XDocument
上调用Save
时,有一个标志枚举,允许您在一定程度上控制文档如何写入XML
实现所需功能(无需遍历结构以删除冗余属性)的最简单方法是使用以下标志之一:省略重复名称空间
序列化时删除重复的命名空间声明
您可以看到,添加此标志将更改我的示例输出:
...
为此:
...
<PmtInf xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">
...
</PmtInf>
var childNodes = new XElement(NameSpace + "GrpHdr", ...);
XElement[] loadedNodes = ...;//Loads from a service using XElement.Load
var content = new XElement(NameSpace + "CstmrCdtTrfInitn", childNodes,loadedNodes));