Compartir a través de


XPathNavigator.ReplaceSelf Método

Definición

Reemplaza el nodo actual por el contenido especificado.

Sobrecargas

ReplaceSelf(XmlReader)

Reemplaza el nodo actual por el contenido del objeto XmlReader especificado.

ReplaceSelf(XPathNavigator)

Reemplaza el nodo actual por el contenido del objeto XPathNavigator especificado.

ReplaceSelf(String)

Reemplaza el nodo actual por el contenido de la cadena especificada.

ReplaceSelf(XmlReader)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Reemplaza el nodo actual por el contenido del objeto XmlReader especificado.

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)

Parámetros

newNode
XmlReader

Objeto XmlReader colocado en los datos XML del nuevo nodo.

Excepciones

El objeto XmlReader está en un estado de error o cerrado.

El parámetro del objeto XmlReader es null.

XPathNavigator no se coloca en ningún elemento, ni en el texto, ni en una instrucción de procesamiento ni en un nodo de comentario.

XPathNavigator no admite la edición.

El contenido XML del parámetro de objeto XmlReader no está bien formado.

Ejemplos

En el ejemplo siguiente, el price elemento del contosoBooks.xml archivo se reemplaza por un nuevo pages elemento.

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)

En el ejemplo se toma como entrada el archivo 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>  

Comentarios

XPathNavigator se coloca en el nuevo nodo al finalizar el ReplaceSelf método y devuelve true. No XPathNavigator se coloca en el nuevo nodo después de completar el ReplaceSelf método cuando la entrada XML está Empty en cuyo caso XPathNavigator se coloca en el siguiente nodo relacionado o en el nodo primario si no hay ningún nodo relacionado siguiente en el nodo reemplazado y ReplaceSelf devuelve false.

  • El ReplaceSelf método solo es válido cuando XPathNavigator se coloca en un elemento, texto, instrucción de procesamiento o nodo de comentario.

  • Si la cadena de datos XML no tiene un formato correcto que se produce una excepción y el resultado de este método es equivalente a llamar DeleteSelf a en el nodo actual.

  • Si la cadena XML contiene varios nodos, se agregan todos los nodos y XPathNavigator se coloca en el primer nodo de la serie de nodos.

  • El ReplaceSelf método no es equivalente al DeleteSelf método .

Se aplica a

ReplaceSelf(XPathNavigator)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Reemplaza el nodo actual por el contenido del objeto XPathNavigator especificado.

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)

Parámetros

newNode
XPathNavigator

Objeto XPathNavigator situado en el nuevo nodo.

Excepciones

El parámetro del objeto XPathNavigator es null.

XPathNavigator no se coloca en ningún elemento, ni en el texto, ni en una instrucción de procesamiento ni en un nodo de comentario.

XPathNavigator no admite la edición.

El contenido XML del parámetro de objeto XPathNavigator no está bien formado.

Ejemplos

En el ejemplo siguiente, el price elemento del contosoBooks.xml archivo se reemplaza por un nuevo pages elemento.

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)

En el ejemplo se toma como entrada el archivo 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>  

Comentarios

XPathNavigator se coloca en el nuevo nodo al finalizar el ReplaceSelf método y devuelve true. No XPathNavigator se coloca en el nuevo nodo después de completar el ReplaceSelf método cuando la entrada XML está Empty en cuyo caso XPathNavigator se coloca en el siguiente nodo relacionado o en el nodo primario si no hay ningún nodo relacionado siguiente en el nodo reemplazado y ReplaceSelf devuelve false.

  • El ReplaceSelf método solo es válido cuando XPathNavigator se coloca en un elemento, texto, instrucción de procesamiento o nodo de comentario.

  • Si la cadena de datos XML no tiene un formato correcto que se produce una excepción y el resultado de este método es equivalente a llamar DeleteSelf a en el nodo actual.

  • Si la cadena XML contiene varios nodos, se agregan todos los nodos y XPathNavigator se coloca en el primer nodo de la serie de nodos.

  • El ReplaceSelf método no es equivalente al DeleteSelf método .

Se aplica a

ReplaceSelf(String)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Reemplaza el nodo actual por el contenido de la cadena especificada.

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)

Parámetros

newNode
String

La cadena de datos XML del nuevo nodo.

Excepciones

El parámetro de cadena XML es null.

XPathNavigator no está colocado en un nodo de elemento, texto, instrucción de procesamiento o comentario.

XPathNavigator no admite la edición.

El parámetro de cadena XML no está bien formado.

Ejemplos

En el ejemplo siguiente, el price elemento del contosoBooks.xml archivo se reemplaza por un nuevo pages elemento.

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)

En el ejemplo se toma como entrada el archivo 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>  

Comentarios

XPathNavigator se coloca en el nuevo nodo al finalizar el ReplaceSelf método y devuelve true. No XPathNavigator se coloca en el nuevo nodo después de completar el ReplaceSelf método cuando la entrada XML está Empty en cuyo caso XPathNavigator se coloca en el siguiente nodo relacionado o en el nodo primario si no hay ningún nodo relacionado siguiente en el nodo reemplazado y ReplaceSelf devuelve false.

  • El ReplaceSelf método solo es válido cuando XPathNavigator se coloca en un elemento, texto, instrucción de procesamiento o nodo de comentario.

  • Si la cadena de datos XML no tiene un formato correcto que se produce una excepción y el resultado de este método es equivalente a llamar DeleteSelf a en el nodo actual.

  • Si la cadena XML contiene varios nodos, se agregan todos los nodos y XPathNavigator se coloca en el primer nodo de la serie de nodos.

  • El ReplaceSelf método no es equivalente al DeleteSelf método .

Se aplica a