Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

XPathNavigator::ReplaceRange Method (XPathNavigator^)

 

Replaces a range of sibling nodes from the current node to the node specified.

Namespace:   System.Xml.XPath
Assembly:  System.Xml (in System.Xml.dll)

public:
virtual XmlWriter^ ReplaceRange(
	XPathNavigator^ lastSiblingToReplace
)

Parameters

lastSiblingToReplace
Type: System.Xml.XPath::XPathNavigator^

An XPathNavigator positioned on the last sibling node in the range to replace.

Return Value

Type: System.Xml::XmlWriter^

An XmlWriter object used to specify the replacement range.

Exception Condition
ArgumentNullException

The XPathNavigator specified is null.

NotSupportedException

The XPathNavigator does not support editing.

InvalidOperationException

The last node to replace specified is not a valid sibling node of the current node.

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

System_CAPS_noteNote

The replacement range is not inserted until the Close method of the 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 ReplaceRange method.

XmlDocument^ document = gcnew XmlDocument();
document->Load("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

XmlNamespaceManager^ manager = gcnew 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
Available since 2.0
Silverlight
Available since 4.0
Return to top
Show:
© 2017 Microsoft