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


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

Определение

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

public:
 virtual void InsertElementBefore(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void InsertElementBefore (string prefix, string localName, string namespaceURI, string value);
public virtual void InsertElementBefore (string? prefix, string localName, string? namespaceURI, string? value);
abstract member InsertElementBefore : string * string * string * string -> unit
override this.InsertElementBefore : string * string * string * string -> unit
Public Overridable Sub InsertElementBefore (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->InsertElementBefore(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.InsertElementBefore(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.InsertElementBefore(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.InsertElementBefore(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)  

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

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

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

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

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

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