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
.
Исключения
Имя не указано, а 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
.
Исключения
Имя не указано, а для 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
.
Исключения
Имя не указано, а для 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).