C# 将XElement添加到具有相同命名空间的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> <

我有一个具有以下结构的XDocument,我想在其中添加一组元素

<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));