XPathNavigator::ReplaceRange Method (XPathNavigator^)
Replaces a range of sibling nodes from the current node to the node specified.
Assembly: System.Xml (in System.Xml.dll)
Parameters
- lastSiblingToReplace
-
Type:
System.Xml.XPath::XPathNavigator^
An XPathNavigator positioned on the last sibling node in the range to replace.
| 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).
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>
Available since 2.0
Silverlight
Available since 4.0
