XPathNavigator.ReplaceSelf Method (String)

Replaces the current node with the content of the string specified.

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

public virtual void ReplaceSelf(
	string newNode
)

Parameters

newNode
Type: System.String

The XML data string for the new node.

ExceptionCondition
ArgumentNullException

The XML string 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 string 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");

navigator.ReplaceSelf("<pages>100</pages>");

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.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft