XPathNavigator.ReplaceRange(XPathNavigator) Metoda

Definicja

Zastępuje zakres węzłów równorzędnych z bieżącego węzła do określonego węzła.

C#
public virtual System.Xml.XmlWriter ReplaceRange (System.Xml.XPath.XPathNavigator lastSiblingToReplace);

Parametry

lastSiblingToReplace
XPathNavigator

Element XPathNavigator umieszczony w ostatnim węźle równorzędnym w zakresie do zastąpienia.

Zwraca

XmlWriter

Obiekt XmlWriter używany do określania zakresu zastępczego.

Wyjątki

Określony XPathNavigator parametr to null.

Element XPathNavigator nie obsługuje edycji.

Ostatni węzeł do zastąpienia określony nie jest prawidłowym węzłem równorzędnym bieżącego węzła.

Przykłady

W poniższym przykładzie pierwsze i drugie book elementy contosoBooks.xml pliku są zastępowane nowym pustym book elementem przy użyciu ReplaceRange metody .

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

W przykładzie plik jest contosoBooks.xml pobierany jako dane wejściowe.

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

Uwagi

Metoda ReplaceRange zastępuje zakres węzłów równorzędnych z bieżącego węzła XPathNavigator , który jest umieszczony w węźle (włącznie) do węzła określonego XPathNavigator przez parametr (włącznie).

Uwaga

Zakres zamiany nie jest wstawiany do momentu Close wywołania metody XmlWriter obiektu.

Dotyczy

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1