XPathNavigator.ReplaceRange(XPathNavigator) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Replaces a range of sibling nodes from the current node to the node specified.
public:
virtual System::Xml::XmlWriter ^ ReplaceRange(System::Xml::XPath::XPathNavigator ^ lastSiblingToReplace);
public virtual System.Xml.XmlWriter ReplaceRange (System.Xml.XPath.XPathNavigator lastSiblingToReplace);
abstract member ReplaceRange : System.Xml.XPath.XPathNavigator -> System.Xml.XmlWriter
override this.ReplaceRange : System.Xml.XPath.XPathNavigator -> System.Xml.XmlWriter
Public Overridable Function ReplaceRange (lastSiblingToReplace As XPathNavigator) As XmlWriter
Parameters
- lastSiblingToReplace
- XPathNavigator
An XPathNavigator positioned on the last sibling node in the range to replace.
Returns
An XmlWriter object used to specify the replacement range.
Exceptions
The XPathNavigator specified is null
.
The XPathNavigator does not support editing.
The last node to replace specified is not a valid sibling node of the current node.
Examples
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);
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);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim manager As XmlNamespaceManager = New XmlNamespaceManager(document.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")
Dim first As XPathNavigator = navigator.SelectSingleNode("/bk:bookstore/bk:book[1]", manager)
Dim last As XPathNavigator = navigator.SelectSingleNode("/bk:bookstore/bk:book[2]", manager)
navigator.MoveTo(first)
Dim newRange As XmlWriter = 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>
Remarks
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).
Note
The replacement range is not inserted until the Close method of the XmlWriter object is called.
Applies to
.NET