我试图创建一个xml应该看起来像这样
<?xml version="1.0" encoding="iso-8859-1"?>
<MyTestSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Tests>
<Test>
<messaure>1</messaure>
<height>4</height>
</Test>
<Test>
<messaure>4</messaure>
<height>53</height>
</Test>
</Tests>
</MyTestSet>
创建测试或测试元素不是问题,但创建包含命名空间的“MyTestSet”的最佳方法是什么? 我正在使用c#XMLDocument
答案 0 :(得分:26)
这对我有用:
XmlDocument.DocumentElement.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
XmlDocument.DocumentElement.SetAttribute("xmlns:xsd", "http://www.w3.org/2001/XMLSchema");
如果要创建已发布的整个文档,可能不想忘记XML声明:
XmlDeclaration xml_declaration;
xml_declaration = XmlDocument.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes");
XmlElement document_element = XmlDocument.DocumentElement;
XmlDocument.InsertBefore(xml_declaration, document_element);
在某些情况下,您可能需要它。
答案 1 :(得分:2)
此问题还显示了另一种方法: Creating a specific XML document using namespaces in C#
您也可以使用XmlNamespaceManager类
http://msdn.microsoft.com/en-us/library/d6730bwt%28VS.80%29.aspx
最后总是有Linq,你可以使用XDocument和XNamespace
答案 2 :(得分:0)
XmlDocument xmlDocSPack = new XmlDocument();
XmlNode xmldocNode = xmlDocSPack.CreateXmlDeclaration("1.0", "", null);
xmlDocSPack.AppendChild(xmldocNode);
XmlElement LiftsMainNode = xmlDocSPack.CreateElement("Lifts");
LiftsMainNode.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xmlDocSPack.AppendChild(LiftsMainNode);
xmlDocSPack.Save("SPack"+DateTime.Now.Year + ".xml");
输出:
<?xml version="1.0"?>
<Lifts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />