C# 使用XmlElement创建带有前缀的xmlns

C# 使用XmlElement创建带有前缀的xmlns,c#,xml,dom,C#,Xml,Dom,我想用以下结构创建一个dom <CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <XmlData> ...other child nodes </XmlData> </CreateImport> 但是现在我的xmlns有一个前缀i,我想通过编程将其添加到我的XmlDocument。 我对XElementvsxmlement感到困惑。前者不能有类型为xm

我想用以下结构创建一个
dom

<CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <XmlData>
  ...other child nodes
  </XmlData>
</CreateImport>
但是现在我的
xmlns
有一个前缀
i
,我想通过编程将其添加到我的
XmlDocument

我对
XElement
vs
xmlement
感到困惑。前者不能有类型为
xmlement

XDocument
XElement
等的子级在Linq To XML中使用。但在我看来,它们也可以用
XmlDocument
以更简单的方式创建XML文档。在您的情况下,您可以这样写:

XElement root = new XElement("CreateImport", new XAttribute(XNamespace.Xmlns + "i", "http://www.w3.org/2001/XMLSchema-instance"),
                             new XElement("XmlData", 
                                          new XElement("Child1"), 
                                          new XElement("Child2")));
您可以使用
root.Save(“myxml.xml”)
将其保存到文件中。这将创建以下XML:

<?xml version="1.0" encoding="utf-8"?>
<CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   Content
</CreateImport>

内容

您可以阅读更多详细信息和示例。

好的,谢谢。但是如何将
XmlData
元素作为子元素添加?我不会把这些文件保存在任何地方。我必须将其作为字符串发送到web服务。我已经编辑了我的答案。但更多详情请参见随附的链接。如果答案对你有帮助,请投票并接受。
<?xml version="1.0" encoding="utf-8"?>
<CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   Content
</CreateImport>