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


XPathNavigator.ReplaceSelf Метод

Определение

Заменяет текущий узел указанным содержимым.

Перегрузки

ReplaceSelf(XmlReader)

Заменяет текущий узел содержимым указанного объекта XmlReader.

ReplaceSelf(XPathNavigator)

Заменяет текущий узел содержимым указанного объекта XPathNavigator.

ReplaceSelf(String)

Заменяет текущий узел содержимым указанной строки.

ReplaceSelf(XmlReader)

Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs

Заменяет текущий узел содержимым указанного объекта XmlReader.

public:
 virtual void ReplaceSelf(System::Xml::XmlReader ^ newNode);
public virtual void ReplaceSelf (System.Xml.XmlReader newNode);
abstract member ReplaceSelf : System.Xml.XmlReader -> unit
override this.ReplaceSelf : System.Xml.XmlReader -> unit
Public Overridable Sub ReplaceSelf (newNode As XmlReader)

Параметры

newNode
XmlReader

Объект XmlReader, расположенный в XML-данных для нового узла.

Исключения

Объект XmlReader находится в состоянии ошибки или закрыт.

Объект XmlReader имеет параметр null.

XPathNavigator Находится не на элемент, текст, инструкция по обработке или узел комментария.

Объект XPathNavigator не поддерживает редактирование.

XML-содержимое параметра объекта XmlReader сформировано некорректно.

Примеры

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

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");

XmlReader^ pages = XmlReader::Create(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator->ReplaceSelf(pages);

Console::WriteLine("Position after delete: {0}", navigator->Name);
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");

XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator.ReplaceSelf(pages);

Console.WriteLine("Position after delete: {0}", navigator.Name);
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.ReplaceSelf(pages)

Console.WriteLine("Position after delete: {0}", navigator.Name)
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>  

Комментарии

объект XPathNavigator размещается на новом узле после завершения ReplaceSelf метода и возвращает .true Объект XPathNavigator не размещается на новом узле после завершения метода, если входные данные Empty XML в этом случае XPathNavigator располагаются либо на следующем одноуровневом узле, либо на родительском узле, если на замененном узле нет следующего ReplaceSelf одноуровневого узла, и ReplaceSelf возвращает false.

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

  • Если xml-строка данных не имеет правильного формата, создается исключение и результат этого метода эквивалентен вызову DeleteSelf на текущем узле.

  • Если XML-строка содержит несколько узлов, все узлы добавляются, а XPathNavigator объект размещается на первом узле в ряду узлов.

  • Метод ReplaceSelf не эквивалентен методу DeleteSelf .

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

ReplaceSelf(XPathNavigator)

Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs

Заменяет текущий узел содержимым указанного объекта XPathNavigator.

public:
 virtual void ReplaceSelf(System::Xml::XPath::XPathNavigator ^ newNode);
public virtual void ReplaceSelf (System.Xml.XPath.XPathNavigator newNode);
abstract member ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
override this.ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub ReplaceSelf (newNode As XPathNavigator)

Параметры

newNode
XPathNavigator

Объект XPathNavigator, расположенный в новом узле.

Исключения

Объект XPathNavigator имеет параметр null.

XPathNavigator Находится не на элемент, текст, инструкция по обработке или узел комментария.

Объект XPathNavigator не поддерживает редактирование.

XML-содержимое параметра объекта XPathNavigator сформировано некорректно.

Примеры

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

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");

XmlDocument^ childNodes = gcnew XmlDocument();
childNodes->Load(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator^ childNodesNavigator = childNodes->CreateNavigator();

navigator->ReplaceSelf(childNodesNavigator);

Console::WriteLine("Position after delete: {0}", navigator->Name);
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");

XmlDocument childNodes = new XmlDocument();
childNodes.Load(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator childNodesNavigator = childNodes.CreateNavigator();

navigator.ReplaceSelf(childNodesNavigator);

Console.WriteLine("Position after delete: {0}", navigator.Name);
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.ReplaceSelf(childNodesNavigator)

Console.WriteLine("Position after delete: {0}", navigator.Name)
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>  

Комментарии

объект XPathNavigator размещается на новом узле после завершения ReplaceSelf метода и возвращает .true Объект XPathNavigator не размещается на новом узле после завершения метода, если входные данные Empty XML в этом случае XPathNavigator располагаются либо на следующем одноуровневом узле, либо на родительском узле, если на замененном узле нет следующего ReplaceSelf одноуровневого узла, и ReplaceSelf возвращает false.

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

  • Если xml-строка данных не имеет правильного формата, создается исключение и результат этого метода эквивалентен вызову DeleteSelf на текущем узле.

  • Если XML-строка содержит несколько узлов, все узлы добавляются, а XPathNavigator объект размещается на первом узле в ряду узлов.

  • Метод ReplaceSelf не эквивалентен методу DeleteSelf .

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

ReplaceSelf(String)

Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs
Исходный код:
XPathNavigator.cs

Заменяет текущий узел содержимым указанной строки.

public:
 virtual void ReplaceSelf(System::String ^ newNode);
public virtual void ReplaceSelf (string newNode);
abstract member ReplaceSelf : string -> unit
override this.ReplaceSelf : string -> unit
Public Overridable Sub ReplaceSelf (newNode As String)

Параметры

newNode
String

Строка данных XML для нового узла.

Исключения

Параметр строки XML — null.

Объект XPathNavigator не находится в элементе, тексте, инструкции по обработке или узле комментария.

Объект XPathNavigator не поддерживает редактирование.

Неправильный формат параметра строки XML.

Примеры

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

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->ReplaceSelf("<pages>100</pages>");

Console::WriteLine("Position after delete: {0}", navigator->Name);
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.ReplaceSelf("<pages>100</pages>");

Console.WriteLine("Position after delete: {0}", navigator.Name);
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.ReplaceSelf("<pages>100</pages>")

Console.WriteLine("Position after delete: {0}", navigator.Name)
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>  

Комментарии

объект XPathNavigator размещается на новом узле после завершения ReplaceSelf метода и возвращает .true Объект XPathNavigator не размещается на новом узле после завершения метода, если входные данные Empty XML в этом случае XPathNavigator располагаются либо на следующем одноуровневом узле, либо на родительском узле, если на замененном узле нет следующего ReplaceSelf одноуровневого узла, и ReplaceSelf возвращает false.

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

  • Если xml-строка данных не имеет правильного формата, создается исключение и результат этого метода эквивалентен вызову DeleteSelf на текущем узле.

  • Если XML-строка содержит несколько узлов, все узлы добавляются, а XPathNavigator объект размещается на первом узле в ряду узлов.

  • Метод ReplaceSelf не эквивалентен методу DeleteSelf .

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