XmlDocument.CreateNode Метод

Определение

Создает XmlNode.

Перегрузки

CreateNode(String, String, String)

Создает XmlNode с помощью указанного типа узла, а также свойств Name и NamespaceURI.

CreateNode(XmlNodeType, String, String)

Создает объект XmlNode с помощью указанных значений XmlNodeType, Name и NamespaceURI.

CreateNode(XmlNodeType, String, String, String)

Создает объект XmlNode с помощью указанных типов XmlNodeType, Prefix, Name и NamespaceURI.

CreateNode(String, String, String)

Создает XmlNode с помощью указанного типа узла, а также свойств Name и NamespaceURI.

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

Полное имя нового узла. Если имя содержит двоеточие, оно разбивается на компоненты Prefix и LocalName.

namespaceURI
String

URI пространства имен нового узла.

Возвращаемое значение

XmlNode

Новый объект 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 Тип узла XML
Атрибут Атрибут
cdatasection CDATA
comment Комментировать
документ Документ
documentfragment DocumentFragment
тип документа DocumentType;
element Элемент
Entityreference EntityReference
processinginstruction ProcessingInstruction;
significantwhitespace SignificantWhitespace
текст Текст
whitespace Пробелы

Хотя этот метод создает новый объект в контексте документа, он не добавляет новый объект в дерево документов автоматически. Чтобы добавить новый объект, необходимо явно вызвать один из методов вставки узла.

В следующей таблице показано, что NodeType[row] разрешено в другом nodeType[column] в соответствии с рекомендацией W3C Extensible Markup Language (XML) 1.0.

Документ DocumentType; XmlDeclaration Элемент Атрибут Текст CDATA разметку EntityReference
Document Нет Нет Нет Нет Нет Нет Нет Нет Нет
DocumentType да Нет Нет Нет Нет Нет Нет Нет Нет
XmlDeclaration да * Нет Нет Нет Нет Нет Нет Нет Нет
Element да Нет Нет да Нет Нет Нет Нет Да***
Attribute Нет Нет Нет Да*** Нет Нет Нет Нет Нет
Text Нет Нет Нет да да Нет Нет Нет да
CDATA Нет Нет Нет да Нет Нет Нет Нет Да***
Markup** да Нет Нет да Нет Нет Нет Нет Нет
EntityReference Нет Нет Нет да да Нет Нет Нет да

* Узел XmlDeclaration должен быть первым дочерним элементом узла Document.

** Разметка включает узлы ProcessingInstruction и Comment.

Узлы элементов и CDATA разрешены только в узлах EntityReference, если узел EntityReference не является дочерним для узла атрибута.

Атрибуты не являются дочерними элементами узла элемента. Атрибуты содержатся в коллекции атрибутов, принадлежащую узлу элемента.

Этот метод является расширением Майкрософт для модели объектов документов (DOM).

Применяется к

CreateNode(XmlNodeType, String, String)

Создает объект XmlNode с помощью указанных значений XmlNodeType, Name и NamespaceURI.

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

Полное имя нового узла. Если имя содержит двоеточие, оно разбивается на компоненты Prefix и LocalName.

namespaceURI
String

URI пространства имен нового узла.

Возвращаемое значение

XmlNode

Новый объект 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

Комментарии

Хотя этот метод создает новый объект в контексте документа, он не добавляет новый объект в дерево документов автоматически. Чтобы добавить новый объект, необходимо явно вызвать один из методов вставки узла.

В следующей таблице показано, что NodeType[row] разрешено в другом nodeType[column] в соответствии с рекомендацией W3C Extensible Markup Language (XML) 1.0.

Документ DocumentType; XmlDeclaration Элемент Атрибут Текст CDATA разметку EntityReference
Document Нет Нет Нет Нет Нет Нет Нет Нет Нет
DocumentType да Нет Нет Нет Нет Нет Нет Нет Нет
XmlDeclaration да * Нет Нет Нет Нет Нет Нет Нет Нет
Element да Нет Нет да Нет Нет Нет Нет Да***
Attribute Нет Нет Нет Да*** Нет Нет Нет Нет Нет
Text Нет Нет Нет да да Нет Нет Нет да
CDATA Нет Нет Нет да Нет Нет Нет Нет Да***
Markup** да Нет Нет да Нет Нет Нет Нет Нет
EntityReference Нет Нет Нет да да Нет Нет Нет да

* Узел XmlDeclaration должен быть первым дочерним элементом узла Document.

** Разметка включает узлы ProcessingInstruction и Comment.

Узлы элементов и CDATA разрешены только в узлах EntityReference, если узел EntityReference не является дочерним для узла атрибута.

Атрибуты не являются дочерними элементами узла элемента. Атрибуты содержатся в коллекции атрибутов, принадлежащую узлу элемента.

Этот метод является расширением Майкрософт для модели объектов документов (DOM).

Применяется к

CreateNode(XmlNodeType, String, String, String)

Создает объект XmlNode с помощью указанных типов XmlNodeType, Prefix, Name и NamespaceURI.

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

Новый объект 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

Комментарии

Хотя этот метод создает новый объект в контексте документа, он не добавляет новый объект в дерево документов автоматически. Чтобы добавить новый объект, необходимо явно вызвать один из методов вставки узла.

В следующей таблице показано, что NodeType[row] разрешено в другом nodeType[column] в соответствии с рекомендацией W3C Extensible Markup Language (XML) 1.0.

Документ DocumentType; XmlDeclaration Элемент Атрибут Текст CDATA разметку EntityReference
Document Нет Нет Нет Нет Нет Нет Нет Нет Нет
DocumentType да Нет Нет Нет Нет Нет Нет Нет Нет
XmlDeclaration да * Нет Нет Нет Нет Нет Нет Нет Нет
Element да Нет Нет да Нет Нет Нет Нет Да***
Attribute Нет Нет Нет Да**** Нет Нет Нет Нет Нет
Text Нет Нет Нет да да Нет Нет Нет да
CDATA Нет Нет Нет да Нет Нет Нет Нет Да***
Markup** да Нет Нет да Нет Нет Нет Нет Нет
EntityReference Нет Нет Нет да да Нет Нет Нет да

* Узел XmlDeclaration должен быть первым дочерним элементом узла document.

** Разметка включает узлы ProcessingInstruction и Comment.

Узлы элементов и CDATA разрешены только в узлах EntityReference, если узел EntityReference не является дочерним для узла атрибута.

Атрибуты не являются дочерними элементами узла элемента. Атрибуты содержатся внутри коллекции атрибутов, принадлежащую узлу Элемента.

Этот метод является расширением Майкрософт для модели объектов документов (DOM).

Применяется к