XPathNavigator.AppendChild Метод

Определение

Создает новый дочерний узел в конце списка дочерних узлов текущего узла.

Перегрузки

AppendChild()

Возвращает объект XmlWriter, используемый для создания одного или нескольких дочерних узлов в конце списка дочерних узлов текущего узла.

AppendChild(String)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя заданную строку данных XML.

AppendChild(XmlReader)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя XML-содержимое заданного объекта XmlReader.

AppendChild(XPathNavigator)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя узлы в заданном XPathNavigator.

AppendChild()

Возвращает объект XmlWriter, используемый для создания одного или нескольких дочерних узлов в конце списка дочерних узлов текущего узла.

public:
 virtual System::Xml::XmlWriter ^ AppendChild();
public virtual System.Xml.XmlWriter AppendChild ();
abstract member AppendChild : unit -> System.Xml.XmlWriter
override this.AppendChild : unit -> System.Xml.XmlWriter
Public Overridable Function AppendChild () As XmlWriter

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

XmlWriter

Объект XmlWriter, используемый для создания новых дочерних узлов в конце списка дочерних узлов текущего узла.

Исключения

Текущий узел, в котором располагается XPathNavigator, не является ни корневым узлом, ни узлом элемента.

Объект XPathNavigator не поддерживает редактирование.

Примеры

В следующем примере новый pages дочерний элемент добавляется в список дочерних элементов первого book элемента в contosoBooks.xml файле с помощью объекта, XmlWriter возвращенного методом AppendChild .

    XmlDocument^ document = gcnew XmlDocument();
    document->Load("contosoBooks.xml");
    XPathNavigator^ navigator = document->CreateNavigator();

    navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
    navigator->MoveToChild("book", "http://www.contoso.com/books");

    XmlWriter^ pages = navigator->AppendChild();
    pages->WriteElementString("pages", "100");
    pages->Close();

Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");

XmlWriter pages = navigator.AppendChild();
pages.WriteElementString("pages", "100");
pages.Close();

Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")

Dim pages As XmlWriter = navigator.AppendChild()
pages.WriteElementString("pages", "100")
pages.Close()

Console.WriteLine(navigator.OuterXml)

В примере в качестве входных данных используется файл contosoBooks.xml.

<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Комментарии

При добавлении дочерних узлов новые узлы добавляются в конец списка дочерних узлов для текущего узла. Например, если для элемента существуют три дочерних узла, первый добавленный узел становится четвертым дочерним узлом. Если дочерние узлы не существуют, создается новый дочерний узел.

Ниже приведены важные примечания, которые следует учитывать при использовании AppendChild метода.

  • Новый дочерний узел не вставляется до Close вызова метода XmlWriter объекта.

  • Метод AppendChild действителен только в том случае, если XPathNavigator он расположен на корневом узле или узле элемента.

  • Метод AppendChild не влияет на положение объекта XPathNavigator.

В модуль записи можно записать несколько узлов. Все узлы добавляются в конец списка дочерних узлов текущего узла.

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

AppendChild(String)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя заданную строку данных XML.

public:
 virtual void AppendChild(System::String ^ newChild);
public virtual void AppendChild (string newChild);
abstract member AppendChild : string -> unit
override this.AppendChild : string -> unit
Public Overridable Sub AppendChild (newChild As String)

Параметры

newChild
String

Строка данных XML для нового дочернего узла.

Исключения

Параметр строки XML-данных — null.

Текущий узел, в котором располагается XPathNavigator, не является ни корневым узлом, ни узлом элемента.

Объект XPathNavigator не поддерживает редактирование.

Неправильный формат параметра строки XML-данных.

Примеры

В следующем примере новый элемент pages добавляется в список дочерних элементов первого элемента book в файле contosoBooks.xml.

XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
navigator->MoveToChild("book", "http://www.contoso.com/books");

navigator->AppendChild("<pages>100</pages>");

Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");

navigator.AppendChild("<pages>100</pages>");

Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")

navigator.AppendChild("<pages>100</pages>")

Console.WriteLine(navigator.OuterXml)

В примере в качестве входных данных используется файл contosoBooks.xml.

<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Комментарии

При добавлении дочернего узла новый узел добавляется в конец списка дочерних узлов для текущего узла. Например, если для элемента существуют три дочерних узла, добавляемый узел становится четвертым дочерним узлом. Если дочерние узлы не существуют, создается новый дочерний узел.

Чтобы создать узел элемента, включите весь синтаксис XML в параметр строки XML. Строка для нового book узла .AppendChild("<book/>") Строка для добавления текста "book" к текстовому узлу текущего узла имеет значение AppendChild("book"). Если строка XML содержит несколько узлов, добавляются все узлы.

Ниже приведены важные примечания, которые следует учитывать при использовании AppendChild метода.

  • Метод AppendChild действителен только в том случае, если XPathNavigator он расположен на корневом узле или узле элемента.

  • Метод AppendChild не влияет на положение объекта XPathNavigator.

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

AppendChild(XmlReader)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя XML-содержимое заданного объекта XmlReader.

public:
 virtual void AppendChild(System::Xml::XmlReader ^ newChild);
public virtual void AppendChild (System.Xml.XmlReader newChild);
abstract member AppendChild : System.Xml.XmlReader -> unit
override this.AppendChild : System.Xml.XmlReader -> unit
Public Overridable Sub AppendChild (newChild As XmlReader)

Параметры

newChild
XmlReader

Объект XmlReader, расположенный в XML-данных для нового дочернего узла.

Исключения

Объект XmlReader находится в состоянии ошибки или закрыт.

Объект XmlReader имеет параметр null.

Текущий узел, в котором располагается XPathNavigator, не является ни корневым узлом, ни узлом элемента.

Объект XPathNavigator не поддерживает редактирование.

XML-содержимое параметра объекта XmlReader сформировано некорректно.

Примеры

В следующем примере новый pages дочерний элемент добавляется в список дочерних элементов первого book элемента в contosoBooks.xml файле, используя указанный XmlReader объект. http://www.contoso.com/books Пространство имен указывается таким образом, чтобы новый дочерний элемент был добавлен с использованием того же пространства имен, что и XML-документ.

XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
navigator->MoveToChild("book", "http://www.contoso.com/books");

XmlReader^ pages = XmlReader::Create(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator->AppendChild(pages);

Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");

XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator.AppendChild(pages);

Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")

Dim pages As XmlReader = XmlReader.Create(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))

navigator.AppendChild(pages)

Console.WriteLine(navigator.OuterXml)

В примере в качестве входных данных используется файл contosoBooks.xml.

<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Комментарии

При добавлении дочернего узла новый узел добавляется в конец списка дочерних узлов для текущего узла. Например, если для элемента существуют три дочерних узла, добавляемый узел становится четвертым дочерним узлом. Если дочерние узлы не существуют, создается новый дочерний узел.

Ниже приведены важные примечания, которые следует учитывать при использовании AppendChild метода.

  • XmlReader Если объект размещается по последовательности УЗЛОВ XML, добавляются все узлы в последовательности.

  • Метод AppendChild действителен только в том случае, если XPathNavigator он расположен на корневом узле или узле элемента.

  • Метод AppendChild не влияет на положение объекта XPathNavigator.

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

AppendChild(XPathNavigator)

Создает новый дочерний узел в конце списка дочерних узлов текущего узла, используя узлы в заданном XPathNavigator.

public:
 virtual void AppendChild(System::Xml::XPath::XPathNavigator ^ newChild);
public virtual void AppendChild (System.Xml.XPath.XPathNavigator newChild);
abstract member AppendChild : System.Xml.XPath.XPathNavigator -> unit
override this.AppendChild : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub AppendChild (newChild As XPathNavigator)

Параметры

newChild
XPathNavigator

Объект XPathNavigator, расположенный в узле, который следует добавить как новый дочерний узел.

Исключения

Объект XPathNavigator имеет параметр null.

Текущий узел, в котором располагается XPathNavigator, не является ни корневым узлом, ни узлом элемента.

Объект XPathNavigator не поддерживает редактирование.

Примеры

В следующем примере новый pages дочерний элемент добавляется в список дочерних элементов первого book элемента в contosoBooks.xml файле с помощью узла, содержащегося в XPathNavigator указанном. http://www.contoso.com/books Пространство имен указывается таким образом, чтобы новый дочерний элемент был добавлен с использованием того же пространства имен, что и XML-документ.

XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

navigator->MoveToChild("bookstore", "http://www.contoso.com/books");
navigator->MoveToChild("book", "http://www.contoso.com/books");

XmlDocument^ childNodes = gcnew XmlDocument();
childNodes->Load(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator^ childNodesNavigator = childNodes->CreateNavigator();


if (childNodesNavigator->MoveToChild("pages", "http://www.contoso.com/books"))
{
    navigator->AppendChild(childNodesNavigator);
}

Console::WriteLine(navigator->OuterXml);
XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");

XmlDocument childNodes = new XmlDocument();
childNodes.Load(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator childNodesNavigator = childNodes.CreateNavigator();

if(childNodesNavigator.MoveToChild("pages", "http://www.contoso.com/books"))
{
    navigator.AppendChild(childNodesNavigator);
}

Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")

Dim childNodes As XmlDocument = New XmlDocument()

childNodes.Load(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
Dim childNodesNavigator As XPathNavigator = childNodes.CreateNavigator()

If childNodesNavigator.MoveToChild("pages", "http://www.contoso.com/books") Then
    navigator.AppendChild(childNodesNavigator)
End If

Console.WriteLine(navigator.OuterXml)

В примере в качестве входных данных используется файл contosoBooks.xml.

<?xml version="1.0" encoding="utf-8" ?>  
<bookstore xmlns="http://www.contoso.com/books">  
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">  
        <title>The Autobiography of Benjamin Franklin</title>  
        <author>  
            <first-name>Benjamin</first-name>  
            <last-name>Franklin</last-name>  
        </author>  
        <price>8.99</price>  
    </book>  
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">  
        <title>The Confidence Man</title>  
        <author>  
            <first-name>Herman</first-name>  
            <last-name>Melville</last-name>  
        </author>  
        <price>11.99</price>  
    </book>  
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">  
        <title>The Gorgias</title>  
        <author>  
            <name>Plato</name>  
        </author>  
        <price>9.99</price>  
    </book>  
</bookstore>  

Комментарии

При добавлении дочернего узла новый узел добавляется в конец списка дочерних узлов для текущего узла. Например, если для элемента существуют три дочерних узла, добавляемый узел становится четвертым дочерним узлом. Если дочерние узлы не существуют, создается новый дочерний узел.

Ниже приведены важные примечания, которые следует учитывать при использовании AppendChild метода.

  • XPathNavigator Если объект размещается по последовательности УЗЛОВ XML, добавляются все узлы в последовательности.

  • Метод AppendChild действителен только в том случае, если XPathNavigator он расположен на корневом узле или узле элемента.

  • Метод AppendChild не влияет на положение объекта XPathNavigator.

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