XmlDocument.CreateNode 方法

定义

创建 XmlNode

重载

CreateNode(String, String, String)

创建具有指定的节点类型、NameNamespaceURIXmlNode

CreateNode(XmlNodeType, String, String)

创建一个具有指定的 XmlNodeTypeNameNamespaceURIXmlNode

CreateNode(XmlNodeType, String, String, String)

创建一个具有指定的XmlNodeTypePrefixNameNamespaceURIXmlNode

CreateNode(String, String, String)

Source:
XmlDocument.cs
Source:
XmlDocument.cs
Source:
XmlDocument.cs

创建具有指定的节点类型、NameNamespaceURIXmlNode

public:
 virtual System::Xml::XmlNode ^ CreateNode(System::String ^ nodeTypeString, System::String ^ name, System::String ^ namespaceURI);
public virtual System.Xml.XmlNode CreateNode (string nodeTypeString, string name, string namespaceURI);
public virtual System.Xml.XmlNode CreateNode (string nodeTypeString, string name, string? namespaceURI);
abstract member CreateNode : string * string * string -> System.Xml.XmlNode
override this.CreateNode : string * string * string -> System.Xml.XmlNode
Public Overridable Function CreateNode (nodeTypeString As String, name As String, namespaceURI As String) As XmlNode

参数

nodeTypeString
String

新节点的 XmlNodeType 的字符串版本。 该参数必须是下表中列出的值之一。

name
String

新节点的限定名称。 如果名称包含一个冒号,则将它解析为 PrefixLocalName 两部分。

namespaceURI
String

新节点的命名空间 URI。

返回

新的 XmlNode

例外

未提供名称,而 XmlNodeType 需要名称;或者 nodeTypeString 不是下列字符串之一。

示例

以下示例创建一个新元素并将其插入文档中。

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
int main()
{
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<book>  <title>Oberon's Legacy</title>  <price>5.95</price></book>" );
   
   // Create a new element node.
   XmlNode^ newElem = doc->CreateNode( "element", "pages", "" );
   newElem->InnerText = "290";
   Console::WriteLine( "Add the new element to the document..." );
   XmlElement^ root = doc->DocumentElement;
   root->AppendChild( newElem );
   Console::WriteLine( "Display the modified XML document..." );
   Console::WriteLine( doc->OuterXml );
}

using System;
using System.Xml;

public class Sample {

  public static void Main() {

       XmlDocument doc = new XmlDocument();
       doc.LoadXml("<book>" +
                   "  <title>Oberon's Legacy</title>" +
                   "  <price>5.95</price>" +
                   "</book>");

       // Create a new element node.
       XmlNode newElem = doc.CreateNode("element", "pages", "");
       newElem.InnerText = "290";

       Console.WriteLine("Add the new element to the document...");
       XmlElement root = doc.DocumentElement;
       root.AppendChild(newElem);

       Console.WriteLine("Display the modified XML document...");
       Console.WriteLine(doc.OuterXml);
   }
 }
Imports System.Xml

public class Sample 

  public shared sub Main() 

       Dim doc as XmlDocument = new XmlDocument()
       doc.LoadXml("<book>" & _
                   "  <title>Oberon's Legacy</title>" & _
                   "  <price>5.95</price>" & _
                   "</book>") 
 
       ' Create a new element node.
       Dim newElem as XmlNode = doc.CreateNode("element", "pages", "")  
       newElem.InnerText = "290"
     
       Console.WriteLine("Add the new element to the document...")
       Dim root as XmlElement = doc.DocumentElement
       root.AppendChild(newElem)
     
       Console.WriteLine("Display the modified XML document...")
       Console.WriteLine(doc.OuterXml)
   end sub
end class

注解

参数 nodeTypeString 区分大小写,必须是下表中的值之一。

nodeTypeString XmlNodeType
attribute Attribute
cdatasection CDATA
comment 评论
文档 文档
documentfragment DocumentFragment
documenttype DocumentType
element 元素
entityreference EntityReference
processinginstruction ProcessingInstruction
significantwhitespace SignificantWhitespace
text 文本
whitespace 空格

尽管此方法在文档的上下文中创建新对象,但它不会自动将新对象添加到文档树。 若要添加新对象,必须显式调用节点插入方法之一。

下表显示了根据 W3C 可扩展标记语言 (XML) 1.0 建议,允许在另一个 NodeType[列]内使用哪些 NodeType[row]。

文档 DocumentType XmlDeclaration 元素 Attribute 文本 CDATA 标记 EntityReference
Document
DocumentType
XmlDeclaration 是*
Element 是的***
Attribute 是的****
Text
CDATA 是的***
Markup**
EntityReference

* XmlDeclaration 节点必须是 Document 节点的第一个子节点。

** 标记包括 ProcessingInstruction 和 Comment 节点。

只有在 EntityReference 节点不是 Attribute 节点的子节点时,才允许在 EntityReference 节点中使用元素和 CDATA 节点。

属性不是元素节点的子级。 属性包含在属于 Element 节点的属性集合中。

此方法是文档对象模型 (DOM) 的Microsoft扩展。

适用于

CreateNode(XmlNodeType, String, String)

Source:
XmlDocument.cs
Source:
XmlDocument.cs
Source:
XmlDocument.cs

创建一个具有指定的 XmlNodeTypeNameNamespaceURIXmlNode

public:
 virtual System::Xml::XmlNode ^ CreateNode(System::Xml::XmlNodeType type, System::String ^ name, System::String ^ namespaceURI);
public virtual System.Xml.XmlNode CreateNode (System.Xml.XmlNodeType type, string name, string namespaceURI);
public virtual System.Xml.XmlNode CreateNode (System.Xml.XmlNodeType type, string name, string? namespaceURI);
abstract member CreateNode : System.Xml.XmlNodeType * string * string -> System.Xml.XmlNode
override this.CreateNode : System.Xml.XmlNodeType * string * string -> System.Xml.XmlNode
Public Overridable Function CreateNode (type As XmlNodeType, name As String, namespaceURI As String) As XmlNode

参数

type
XmlNodeType

新节点的 XmlNodeType

name
String

新节点的限定名称。 如果名称包含一个冒号,则将其解析为 PrefixLocalName 两部分。

namespaceURI
String

新节点的命名空间 URI。

返回

新的 XmlNode

例外

未提供名称,而 XmlNodeType 需要名称。

示例

以下示例创建一个新元素并将其插入 XML 文档中。

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   //Create the XmlDocument.
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<book genre='novel' ISBN='1-861001-57-5'><title>Pride And Prejudice</title></book>" );
   
   //Create a new node and add it to the document.
   XmlNode^ elem = doc->CreateNode( XmlNodeType::Element, "price", nullptr );
   elem->InnerText = "19.95";
   doc->DocumentElement->AppendChild( elem );
   Console::WriteLine( "Display the modified XML..." );
   doc->Save( Console::Out );
}

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    //Create a new node and add it to the document.
    XmlNode elem = doc.CreateNode(XmlNodeType.Element, "price", null);
    elem.InnerText = "19.95";
    doc.DocumentElement.AppendChild(elem);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        'Create the XmlDocument.
        Dim doc As New XmlDocument()
        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>")
        
        'Create a new node and add it to the document.
        Dim elem As XmlNode = doc.CreateNode(XmlNodeType.Element, "price", Nothing)
        elem.InnerText = "19.95"
        doc.DocumentElement.AppendChild(elem)
        
        Console.WriteLine("Display the modified XML...")
        doc.Save(Console.Out)
    End Sub
End Class

注解

尽管此方法在文档的上下文中创建新对象,但它不会自动将新对象添加到文档树。 若要添加新对象,必须显式调用节点插入方法之一。

下表显示了根据 W3C 可扩展标记语言 (XML) 1.0 建议,允许在另一个 NodeType[列]内使用哪些 NodeType[row]。

文档 DocumentType XmlDeclaration 元素 Attribute 文本 CDATA 标记 EntityReference
Document
DocumentType
XmlDeclaration 是*
Element 是的***
Attribute 是的****
Text
CDATA 是的***
Markup**
EntityReference

* XmlDeclaration 节点必须是 Document 节点的第一个子节点。

** 标记包括 ProcessingInstruction 和 Comment 节点。

仅当 EntityReference 节点不是 Attribute 节点的子级时,EntityReference 节点才允许使用元素和 CDATA 节点。

属性不是元素节点的子级。 属性包含在属于 Element 节点的属性集合中。

此方法是文档对象模型 (DOM) 的Microsoft扩展。

适用于

CreateNode(XmlNodeType, String, String, String)

Source:
XmlDocument.cs
Source:
XmlDocument.cs
Source:
XmlDocument.cs

创建一个具有指定的XmlNodeTypePrefixNameNamespaceURIXmlNode

public:
 virtual System::Xml::XmlNode ^ CreateNode(System::Xml::XmlNodeType type, System::String ^ prefix, System::String ^ name, System::String ^ namespaceURI);
public virtual System.Xml.XmlNode CreateNode (System.Xml.XmlNodeType type, string prefix, string name, string namespaceURI);
public virtual System.Xml.XmlNode CreateNode (System.Xml.XmlNodeType type, string? prefix, string name, string? namespaceURI);
abstract member CreateNode : System.Xml.XmlNodeType * string * string * string -> System.Xml.XmlNode
override this.CreateNode : System.Xml.XmlNodeType * string * string * string -> System.Xml.XmlNode
Public Overridable Function CreateNode (type As XmlNodeType, prefix As String, name As String, namespaceURI As String) As XmlNode

参数

type
XmlNodeType

新节点的 XmlNodeType

prefix
String

新节点的前缀。

name
String

新节点的本地名称。

namespaceURI
String

新节点的命名空间 URI。

返回

新的 XmlNode

例外

未提供名称,而 XmlNodeType 需要名称。

示例

以下示例向文档添加新元素。

#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
int main()
{
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<book>  <title>Oberon's Legacy</title>  <price>5.95</price></book>" );
   
   // Create a new element node.
   XmlNode^ newElem;
   newElem = doc->CreateNode( XmlNodeType::Element, "g" , "ISBN" , "https://global.ISBN/list" );
   newElem->InnerText = "1-861001-57-5";
    
   // Add the new element to the document
   XmlElement^ root = doc->DocumentElement;
   root->AppendChild( newElem );
    
   // Display the modified XML document
   Console::WriteLine( doc->OuterXml );
    
    // Output:
    // <book><title>Oberon's Legacy</title><price>5.95</price><g:ISBN xmlns:g="https://global.ISBN/list">1-861001-57-5</g:ISBN></book>
}

using System;
using System.Xml;

public class Sample {

  public static void Main() {

        // Create a new document containing information about a book
        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<book>" +
                    "  <title>Oberon's Legacy</title>" +
                    "  <price>5.95</price>" +
                    "</book>");

        // Create a new element node for the ISBN of the book
        // It is possible to supply a prefix for this node, and specify a qualified namespace.
        XmlNode newElem;
        newElem = doc.CreateNode(XmlNodeType.Element, "g", "ISBN", "https://global.ISBN/list");
        newElem.InnerText = "1-861001-57-5";

        // Add the new element to the document
        XmlElement root = doc.DocumentElement;
        root.AppendChild(newElem);

        // Display the modified XML document
        Console.WriteLine(doc.OuterXml);

        //Output:
        // <book><title>Oberon's Legacy</title><price>5.95</price><g:ISBN xmlns:g="https://global.ISBN/list">1-861001-57-5</g:ISBN></book>
   }
 }
Imports System.Xml

public class Sample 

  public shared sub Main() 

        Dim doc as XmlDocument = new XmlDocument()
        doc.LoadXml("<book>" & _
                    "  <title>Oberon's Legacy</title>" & _
                    "  <price>5.95</price>" & _
                       "</book>") 
 
        ' Create a new element node.
        ' It is possible to supply a prefix for this node, and specify a qualified namespace
        Dim newElem as XmlNode
        newElem = doc.CreateNode(XmlNodeType.Element,"g", "ISBN","https://global.ISBN/list")
        newElem.InnerText = "1-861001-57-5"
     
        ' Add the new element to the document
        Dim root as XmlElement = doc.DocumentElement
        root.AppendChild(newElem)
     
        ' Display the modified XML document
        Console.WriteLine(doc.OuterXml)
        
        ' Output:
        ' <book><title>Oberon's Legacy</title><price>5.95</price><g:ISBN xmlns:g="https://global.ISBN/list">1-861001-57-5</g:ISBN></book>
   end sub
end class

注解

尽管此方法在文档的上下文中创建新对象,但它不会自动将新对象添加到文档树。 若要添加新对象,必须显式调用节点插入方法之一。

下表显示了根据 W3C 可扩展标记语言 (XML) 1.0 建议,允许在另一个 NodeType[列]内使用哪些 NodeType[row]。

文档 DocumentType XmlDeclaration 元素 Attribute 文本 CDATA 标记 EntityReference
Document
DocumentType
XmlDeclaration 是*
Element 是的***
Attribute 是的****
Text
CDATA 是的***
Markup**
EntityReference

* XmlDeclaration 节点必须是 Document 节点的第一个子节点。

** 标记包括 ProcessingInstruction 和 Comment 节点。

仅当 EntityReference 节点不是 Attribute 节点的子级时,EntityReference 节点才允许使用元素和 CDATA 节点。

属性不是元素节点的子级。 属性包含在属于 Element 节点的属性集合中。

此方法是文档对象模型 (DOM) 的Microsoft扩展。

适用于