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 = 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объекта.