XPathNavigator.InsertElementAfter(String, String, String, String) Метод

Определение

Создает новый элемент брата после текущего узла с помощью префикса пространства имен, указанного локального имени и URI пространства имен с указанным значением.

public:
 virtual void InsertElementAfter(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void InsertElementAfter(string? prefix, string localName, string? namespaceURI, string? value);
public virtual void InsertElementAfter(string prefix, string localName, string namespaceURI, string value);
abstract member InsertElementAfter : string * string * string * string -> unit
override this.InsertElementAfter : string * string * string * string -> unit
Public Overridable Sub InsertElementAfter (prefix As String, localName As String, namespaceURI As String, value As String)

Параметры

prefix
String

Префикс пространства имен нового дочернего элемента (если таковой есть).

localName
String

Локальное имя нового дочернего элемента (при наличии).

namespaceURI
String

URI пространства имен нового дочернего элемента (если таковой имеется). Empty и null эквивалентны.

value
String

Значение нового дочернего элемента. Если Empty или null передается, создается пустой элемент.

Исключения

Позиция этого XPathNavigator узла не позволяет вставлять новый одноуровневый узел после текущего узла.

Не поддерживает редактирование XPathNavigator .

Примеры

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

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.MoveToChild("price", "http://www.contoso.com/books");

navigator.InsertElementAfter(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100");

navigator.MoveToParent();
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.MoveToChild("price", "http://www.contoso.com/books")

navigator.InsertElementAfter(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100")

navigator.MoveToParent()
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>

Комментарии

Значения префикса пространства имен и URI можно получить с помощью LookupPrefix метода или LookupNamespace метода. Например, следующий синтаксис вставляет элемент с братом с помощью пространства xmlns:bk="http://www.contoso.com/books"имен в области:

navigator.InsertElementAfter(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)

При этом создается новый элемент одноуровневого уровня <bk:pages/> .

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

  • Если указан null префикс пространства имен или String.Empty, то префикс для URI пространства имен нового элемента получается из текущих пространств имен в области. Если префикс пространства имен не назначен указанному URI пространства имен в текущей области, то префикс пространства имен создается автоматически.

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

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

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