This documentation is archived and is not being maintained.

XPathNavigator.ReplaceSelf Method (XPathNavigator)

Replaces the current node with the contents of the XPathNavigator object specified.

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

public virtual void ReplaceSelf(
	XPathNavigator newNode
)

Parameters

newNode
Type: System.Xml.XPath.XPathNavigator
An XPathNavigator object positioned on the new node.

ExceptionCondition
ArgumentNullException

The XPathNavigator object parameter is null.

InvalidOperationException

The XPathNavigator is not positioned on an element, text, processing instruction, or comment node.

NotSupportedException

The XPathNavigator does not support editing.

XmlException

The XML contents of the XPathNavigator object parameter is not well-formed.

The XPathNavigator is positioned on the new node on completion of the ReplaceSelf method and returns true. The XPathNavigator is not positioned on the new node after completion of the ReplaceSelf method when the XML input is Empty in which case the XPathNavigator is either positioned on the next sibling node or the parent node if there is no next sibling node to the replaced node and the ReplaceSelf returns false.

  • The ReplaceSelf method is valid only when the XPathNavigator is positioned on an element, text, processing instruction, or comment node.

  • If the XML data string is not well-formed than an exception is thrown and the result of this method is equivalent to calling DeleteSelf on the current node.

  • If the XML string contains multiple nodes, all nodes are added and the XPathNavigator is positioned on the first node in the series of nodes.

  • The ReplaceSelf method is not equivalent to the DeleteSelf method.

In the following example the price element in the contosoBooks.xml file is replaced by a new pages element.


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);


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

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: