XPathNavigator.InsertBefore Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый одноуровневый узел перед выбранным в данный момент узлом.
Перегрузки
| Имя | Описание |
|---|---|
| InsertBefore() |
Возвращает объект, используемый XmlWriter для создания нового одноуровневого узла перед выбранным в данный момент узлом. |
| InsertBefore(String) |
Создает новый одноуровневый узел перед выбранным в данный момент узлом с помощью указанной XML-строки. |
| InsertBefore(XmlReader) |
Создает новый одноуровневый узел перед выбранным в данный момент узлом с использованием XML-содержимого указанного XmlReader объекта. |
| InsertBefore(XPathNavigator) |
Создает новый одноуровневый узел перед выбранным в данный момент узлом с помощью указанных XPathNavigator узлов. |
InsertBefore()
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
Возвращает объект, используемый XmlWriter для создания нового одноуровневого узла перед выбранным в данный момент узлом.
public:
virtual System::Xml::XmlWriter ^ InsertBefore();
public virtual System.Xml.XmlWriter InsertBefore();
abstract member InsertBefore : unit -> System.Xml.XmlWriter
override this.InsertBefore : unit -> System.Xml.XmlWriter
Public Overridable Function InsertBefore () As XmlWriter
Возвращаемое значение
Объект XmlWriter , используемый для создания нового одноуровневого узла перед выбранным в данный момент узлом.
Исключения
Позиция этого XPathNavigator узла не позволяет вставлять новый одноуровневый узел перед текущим узлом.
Не поддерживает редактирование XPathNavigator .
Примеры
В следующем примере новый pages элемент вставляется перед price дочерним элементом первого book элемента в contosoBooks.xml файле с помощью XmlWriter объекта, возвращаемого InsertBefore методом.
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");
XmlWriter pages = navigator.InsertBefore();
pages.WriteElementString("pages", "100");
pages.Close();
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")
Dim pages As XmlWriter = navigator.InsertBefore()
pages.WriteElementString("pages", "100")
pages.Close()
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>
Комментарии
Ниже приведены важные заметки, которые следует учитывать при использовании InsertBefore метода.
Новый одноуровневый узел не вставляется до Close вызова метода XmlWriter объекта.
Метод InsertBefore действителен только в том случае, если XPathNavigator он расположен на элементе, тексте, инструкции обработки или узле комментариев.
Метод InsertBefore не влияет на положение XPathNavigatorобъекта.
Применяется к
InsertBefore(String)
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
Создает новый одноуровневый узел перед выбранным в данный момент узлом с помощью указанной XML-строки.
public:
virtual void InsertBefore(System::String ^ newSibling);
public virtual void InsertBefore(string newSibling);
abstract member InsertBefore : string -> unit
override this.InsertBefore : string -> unit
Public Overridable Sub InsertBefore (newSibling As String)
Параметры
- newSibling
- String
Строка данных XML для нового узла-брата.
Исключения
Параметр строки XML имеет значение null.
Позиция этого XPathNavigator узла не позволяет вставлять новый одноуровневый узел перед текущим узлом.
Не поддерживает редактирование XPathNavigator .
Параметр строки XML не является хорошо сформированным.
Примеры
В следующем примере новый 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.InsertBefore("<pages>100</pages>");
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.InsertBefore("<pages>100</pages>")
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>
Комментарии
Чтобы создать новый узел элемента, добавьте весь синтаксис XML в параметр строки XML. Строка для нового book узла InsertBefore("<book/>"). Строка для вставки текстового "книги" перед текстовым узлом текущего узла InsertBefore("book"). Если XML-строка содержит несколько узлов, добавляются все узлы.
Ниже приведены важные заметки, которые следует учитывать при использовании InsertBefore метода.
Метод InsertBefore действителен только в том случае, если XPathNavigator он расположен на элементе, тексте, инструкции обработки или узле комментариев.
Метод InsertBefore не влияет на положение XPathNavigatorобъекта.
Применяется к
InsertBefore(XmlReader)
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
Создает новый одноуровневый узел перед выбранным в данный момент узлом с использованием XML-содержимого указанного XmlReader объекта.
public:
virtual void InsertBefore(System::Xml::XmlReader ^ newSibling);
public virtual void InsertBefore(System.Xml.XmlReader newSibling);
abstract member InsertBefore : System.Xml.XmlReader -> unit
override this.InsertBefore : System.Xml.XmlReader -> unit
Public Overridable Sub InsertBefore (newSibling As XmlReader)
Параметры
Исключения
Объект XmlReader находится в состоянии ошибки или закрыт.
Параметр XmlReader объекта имеет значение null.
Позиция этого XPathNavigator узла не позволяет вставлять новый одноуровневый узел перед текущим узлом.
Не поддерживает редактирование XPathNavigator .
Xml-содержимое XmlReader параметра объекта не является хорошо сформированным.
Примеры
В следующем примере новый pages элемент вставляется перед price дочерним элементом первого book элемента в contosoBooks.xml файле с помощью указанного XmlReader объекта. Пространство http://www.contoso.com/books имен указывается таким образом, чтобы новый элемент брата вставлялся с использованием того же пространства имен, что и 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");
XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
navigator.InsertBefore(pages);
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")
Dim pages As XmlReader = XmlReader.Create(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
navigator.InsertBefore(pages)
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>
Комментарии
Ниже приведены важные заметки, которые следует учитывать при использовании InsertBefore метода.
XmlReader Если объект размещается по последовательности XML-узлов, добавляются все узлы в последовательности.
Метод InsertBefore действителен только в том случае, если XPathNavigator он расположен на элементе, тексте, инструкции обработки или узле комментариев.
Метод InsertBefore не влияет на положение XPathNavigatorобъекта.
Применяется к
InsertBefore(XPathNavigator)
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
- Исходный код:
- XPathNavigator.cs
Создает новый одноуровневый узел перед выбранным в данный момент узлом с помощью указанных XPathNavigator узлов.
public:
virtual void InsertBefore(System::Xml::XPath::XPathNavigator ^ newSibling);
public virtual void InsertBefore(System.Xml.XPath.XPathNavigator newSibling);
abstract member InsertBefore : System.Xml.XPath.XPathNavigator -> unit
override this.InsertBefore : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub InsertBefore (newSibling As XPathNavigator)
Параметры
- newSibling
- XPathNavigator
Объект XPathNavigator , расположенный на узле, который будет добавлен в качестве нового одноуровневого узла.
Исключения
Параметр XPathNavigator объекта имеет значение null.
Позиция этого XPathNavigator узла не позволяет вставлять новый одноуровневый узел перед текущим узлом.
Не поддерживает редактирование XPathNavigator .
Примеры
В следующем примере новый pages элемент вставляется перед price дочерним элементом первого book элемента в contosoBooks.xml файле с помощью узла, содержащегося в указанном объекте XPathNavigator . Пространство http://www.contoso.com/books имен указывается таким образом, чтобы новый элемент брата вставлялся с использованием того же пространства имен, что и 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");
XmlDocument childNodes = new XmlDocument();
childNodes.Load(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator childNodesNavigator = childNodes.CreateNavigator();
navigator.InsertBefore(childNodesNavigator);
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")
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()
navigator.InsertBefore(childNodesNavigator)
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>
Комментарии
Ниже приведены важные заметки, которые следует учитывать при использовании InsertBefore метода.
XPathNavigator Если объект размещается по последовательности XML-узлов, добавляются все узлы в последовательности.
Метод InsertBefore действителен только в том случае, если XPathNavigator он расположен на элементе, тексте, инструкции обработки или узле комментариев.
Метод InsertBefore не влияет на положение XPathNavigatorобъекта.