Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método XPathNavigator.ReplaceRange (XPathNavigator)

 

Publicado: octubre de 2016

Reemplaza un intervalo de nodos relacionados desde el nodo actual hasta al nodo especificado.

Espacio de nombres:   System.Xml.XPath
Ensamblado:  System.Xml (en System.Xml.dll)

public virtual XmlWriter ReplaceRange(
	XPathNavigator lastSiblingToReplace
)

Parámetros

lastSiblingToReplace
Type: System.Xml.XPath.XPathNavigator

XPathNavigator situado en el último nodo relacionado del intervalo que se va a reemplazar.

Valor devuelto

Type: System.Xml.XmlWriter

Objeto XmlWriter que se usa para especificar el intervalo de reemplazo.

Exception Condition
ArgumentNullException

El XPathNavigator especificado es null.

NotSupportedException

XPathNavigator no admite la edición.

InvalidOperationException

El último nodo especificado para su reemplazo no es un nodo relacionado válido del nodo actual.

The M:System.Xml.XPath.XPathNavigator.ReplaceRange(System.Xml.XPath.XPathNavigator) method replaces a range of sibling nodes from the current node the T:System.Xml.XPath.XPathNavigator is positioned on (inclusive) to the node specified by the T:System.Xml.XPath.XPathNavigator parameter (inclusive).

System_CAPS_noteNota

The replacement range is not inserted until the M:System.Xml.XmlWriter.Close method of the T:System.Xml.XmlWriter object is called.

In the following example, the first and second book elements of the contosoBooks.xml file are replaced with a new empty book element using the M:System.Xml.XPath.XPathNavigator.ReplaceRange(System.Xml.XPath.XPathNavigator) method.

XmlDocument document = new XmlDocument();
document.Load("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable);
manager.AddNamespace("bk", "http://www.contoso.com/books");

XPathNavigator first = navigator.SelectSingleNode("/bk:bookstore/bk:book[1]", manager);
XPathNavigator last = navigator.SelectSingleNode("/bk:bookstore/bk:book[2]", manager);

navigator.MoveTo(first);
XmlWriter newRange = navigator.ReplaceRange(last);
newRange.WriteStartElement("book");
newRange.WriteAttributeString("genre", "");
newRange.WriteAttributeString("publicationdate", "2005-04-07");
newRange.WriteAttributeString("ISBN", "0");
newRange.WriteStartElement("title");
newRange.WriteString("New Book");
newRange.WriteEndElement();
newRange.WriteStartElement("author");
newRange.WriteStartElement("first-name");
newRange.WriteString("First Name");
newRange.WriteEndElement();
newRange.WriteStartElement("last-name");
newRange.WriteString("Last Name");
newRange.WriteEndElement();
newRange.WriteEndElement();
newRange.WriteElementString("price", "$0.00");
newRange.WriteEndElement();
newRange.Close();
Console.WriteLine(navigator.OuterXml);

The example takes the contosoBooks.xml file as an input.


<?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>

.NET Framework
Disponible desde 2.0
Silverlight
Disponible desde 4.0
Volver al principio
Mostrar: