Поделиться через


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

navigator->InsertElementAfter(navigator->Prefix, "pages", navigator->LookupNamespace(navigator->Prefix), "100");

navigator->MoveToParent();
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.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объекта .

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