【问题标题】:How to add xmlnamespace to a xmldocument如何将 xmlnamespace 添加到 xmldocument
【发布时间】:2023-03-23 05:54:01
【问题描述】:

我正在尝试创建一个应该看起来像这样的 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

【问题讨论】:

    标签: c# xml xmldocument


    【解决方案1】:

    这对我有用:

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

    在某些情况下您可能需要它。

    【讨论】:

      【解决方案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

      http://msdn.microsoft.com/en-us/library/bb387075.aspx

      【讨论】:

        【解决方案3】:
        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" />
        

        【讨论】:

          猜你喜欢
          • 2014-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-06
          • 1970-01-01
          • 1970-01-01
          • 2012-07-11
          • 2012-03-04
          相关资源
          最近更新 更多