XPathNavigator.ReplaceRange(XPathNavigator) Methode

Definition

Ersetzt einen Bereich von nebengeordneten Knoten, vom aktuellen Knoten bis zum angegebenen Knoten.

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

Parameter

lastSiblingToReplace
XPathNavigator

Ein XPathNavigator, der auf dem letzten zu ersetzenden nebengeordneten Knoten im Bereich positioniert ist.

Gibt zurück

XmlWriter

Ein XmlWriter-Objekt, mit dem der Bereich für die Ersetzung angegeben wird.

Ausnahmen

Das angegebene XPathNavigator ist null.

Der XPathNavigator unterstützt keine Bearbeitung.

Der angegebene letzte zu ersetzende Knoten ist kein gültiger nebengeordneter Knoten des aktuellen Knotens.

Beispiele

Im folgenden Beispiel werden die ersten und zweiten book Elemente der Datei durch ein neues leeres book Element mit der contosoBooks.xml ReplaceRange Methode ersetzt.

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)

In diesem Beispiel wird die Datei contosoBooks.xml als Eingabe verwendet.

<?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>  

Hinweise

Die ReplaceRange Methode ersetzt einen Bereich von geschwisterten Knoten aus dem aktuellen Knoten, der XPathNavigator auf (inklusive) an den XPathNavigator vom Parameter angegebenen Knoten (inklusive) positioniert ist.

Hinweis

Der Ersatzbereich wird erst eingefügt, wenn die Close Methode des XmlWriter Objekts aufgerufen wird.

Gilt für