【发布时间】:2010-09-24 19:10:05
【问题描述】:
我需要创建一个XmlDocument,其根元素包含多个命名空间。我正在使用 C# 2.0 或 3.0
这是我的代码:
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("JOBS", "http://www.example.com");
doc.AppendChild(root);
XmlElement job = doc.CreateElement("JOB", "http://www.example.com");
root.AppendChild(job);
XmlElement docInputs = doc.CreateElement("JOB", "DOCINPUTS", "http://www.example.com");
job.AppendChild(docInputs);
XmlElement docInput = doc.CreateElement("JOB", "DOCINPUT", "http://www.example.com");
docInputs.AppendChild(docInput);
XmlElement docOutput = doc.CreateElement("JOB", "DOCOUTPUT", "http://www.example.com");
docOutputs.AppendChild(docOutput);
当前输出:
<JOBS xmlns="http://www.example.com">
<JOB>
<JOB:DOCINPUTS xmlns:JOB="http://www.example.com">
<JOB:DOCINPUT />
</JOB:DOCINPUTS>
<JOB:DOCOUTPUTS xmlns:JOB="http://www.example.com">
<JOB:DOCOUTPUT />
</JOB:DOCOUTPUTS>
</JOB>
</JOBS>
但是,我想要的输出是:
<JOBS xmlns:JOBS="http://www.example.com" xmlns:JOB="http://www.example.com">
<JOB>
<JOB:DOCINPUTS>
<JOB:DOCINPUT />
</JOB:DOCINPUTS>
<JOB:DOCOUTPUTS>
<JOB:DOCOUTPUT />
</JOB:DOCOUTPUTS>
</JOB>
</JOBS>
我的问题:如何创建一个包含具有多个命名空间的根元素的XmlDocument?
【问题讨论】:
-
根据您的代码,您的意图似乎是让
具有默认命名空间“example.com”,但您描述的所需输出表明 不是命名空间。你能澄清一下吗? -
@Oppositional -
从 继承命名空间;如果没有明确的命名空间,所有子元素都将从父元素继承。在这种情况下,格式由应用 AdLib 指定,它期望我发布的所需输出。
标签: c# .net xml namespaces xmldocument