Udostępnij za pośrednictwem


XPathNavigator.ReplaceSelf Metoda

Definicja

Zamienia bieżący węzeł na określoną zawartość.

Przeciążenia

ReplaceSelf(XmlReader)

Zastępuje bieżący węzeł zawartością określonego XmlReader obiektu.

ReplaceSelf(XPathNavigator)

Zastępuje bieżący węzeł zawartością określonego XPathNavigator obiektu.

ReplaceSelf(String)

Zamienia bieżący węzeł na zawartość określonego ciągu.

ReplaceSelf(XmlReader)

Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs

Zastępuje bieżący węzeł zawartością określonego XmlReader obiektu.

public:
 virtual void ReplaceSelf(System::Xml::XmlReader ^ newNode);
public virtual void ReplaceSelf (System.Xml.XmlReader newNode);
abstract member ReplaceSelf : System.Xml.XmlReader -> unit
override this.ReplaceSelf : System.Xml.XmlReader -> unit
Public Overridable Sub ReplaceSelf (newNode As XmlReader)

Parametry

newNode
XmlReader

Obiekt XmlReader umieszczony w danych XML dla nowego węzła.

Wyjątki

Obiekt XmlReader jest w stanie błędu lub jest zamknięty.

XmlReader Parametr obiektu to null.

Element XPathNavigator nie jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

Element XPathNavigator nie obsługuje edycji.

Zawartość XML parametru XmlReader obiektu nie jest poprawnie sformułowana.

Przykłady

W poniższym przykładzie price element w contosoBooks.xml pliku jest zastępowany przez nowy pages element.

XmlDocument^ document = gcnew 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");

XmlReader^ pages = XmlReader::Create(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator->ReplaceSelf(pages);

Console::WriteLine("Position after delete: {0}", navigator->Name);
Console::WriteLine(navigator->OuterXml);
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");

XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));

navigator.ReplaceSelf(pages);

Console.WriteLine("Position after delete: {0}", navigator.Name);
Console.WriteLine(navigator.OuterXml);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = 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")

Dim pages As XmlReader = XmlReader.Create(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))

navigator.ReplaceSelf(pages)

Console.WriteLine("Position after delete: {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

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

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

Element XPathNavigator jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody i zwraca wartość true. Element XPathNavigator nie jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody, gdy dane wejściowe XML są Empty w tym przypadku XPathNavigator umieszczone w następnym węźle równorzędnym lub w węźle nadrzędnym, jeśli nie ma kolejnego węzła równorzędnego do zastąpionego węzła i ReplaceSelf zwraca wartość false.

  • Metoda jest prawidłowa ReplaceSelf tylko wtedy, gdy XPathNavigator element jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

  • Jeśli ciąg danych XML nie jest poprawnie sformułowany niż zgłaszany wyjątek, a wynik tej metody jest odpowiednikiem wywołania DeleteSelf w bieżącym węźle.

  • Jeśli ciąg XML zawiera wiele węzłów, zostaną dodane wszystkie węzły, a XPathNavigator element zostanie umieszczony na pierwszym węźle w serii węzłów.

  • Metoda ReplaceSelf nie jest równoważna metodzie DeleteSelf .

Dotyczy

ReplaceSelf(XPathNavigator)

Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs

Zastępuje bieżący węzeł zawartością określonego XPathNavigator obiektu.

public:
 virtual void ReplaceSelf(System::Xml::XPath::XPathNavigator ^ newNode);
public virtual void ReplaceSelf (System.Xml.XPath.XPathNavigator newNode);
abstract member ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
override this.ReplaceSelf : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub ReplaceSelf (newNode As XPathNavigator)

Parametry

newNode
XPathNavigator

Obiekt XPathNavigator umieszczony w nowym węźle.

Wyjątki

XPathNavigator Parametr obiektu to null.

Element XPathNavigator nie jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

Element XPathNavigator nie obsługuje edycji.

Zawartość XML parametru XPathNavigator obiektu nie jest poprawnie sformułowana.

Przykłady

W poniższym przykładzie price element w contosoBooks.xml pliku jest zastępowany przez nowy pages element.

XmlDocument^ document = gcnew 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 = gcnew XmlDocument();
childNodes->Load(gcnew 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);
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);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = 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")

Dim childNodes As XmlDocument = New XmlDocument()
childNodes.Load(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
Dim childNodesNavigator As XPathNavigator = childNodes.CreateNavigator()

navigator.ReplaceSelf(childNodesNavigator)

Console.WriteLine("Position after delete: {0}", navigator.Name)
Console.WriteLine(navigator.OuterXml)

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

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

Element XPathNavigator jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody i zwraca wartość true. Element XPathNavigator nie jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody, gdy dane wejściowe XML są Empty w tym przypadku XPathNavigator umieszczone w następnym węźle równorzędnym lub w węźle nadrzędnym, jeśli nie ma kolejnego węzła równorzędnego do zastąpionego węzła i ReplaceSelf zwraca wartość false.

  • Metoda jest prawidłowa ReplaceSelf tylko wtedy, gdy XPathNavigator element jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

  • Jeśli ciąg danych XML nie jest poprawnie sformułowany niż zgłaszany wyjątek, a wynik tej metody jest odpowiednikiem wywołania DeleteSelf w bieżącym węźle.

  • Jeśli ciąg XML zawiera wiele węzłów, zostaną dodane wszystkie węzły, a XPathNavigator element zostanie umieszczony na pierwszym węźle w serii węzłów.

  • Metoda ReplaceSelf nie jest równoważna metodzie DeleteSelf .

Dotyczy

ReplaceSelf(String)

Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs
Źródło:
XPathNavigator.cs

Zamienia bieżący węzeł na zawartość określonego ciągu.

public:
 virtual void ReplaceSelf(System::String ^ newNode);
public virtual void ReplaceSelf (string newNode);
abstract member ReplaceSelf : string -> unit
override this.ReplaceSelf : string -> unit
Public Overridable Sub ReplaceSelf (newNode As String)

Parametry

newNode
String

Ciąg danych XML dla nowego węzła.

Wyjątki

Parametr ciągu XML to null.

Element XPathNavigator nie jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

Element XPathNavigator nie obsługuje edycji.

Parametr ciągu XML nie jest poprawnie sformułowany.

Przykłady

W poniższym przykładzie price element w contosoBooks.xml pliku jest zastępowany przez nowy pages element.

XmlDocument^ document = gcnew 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);
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);
Dim document As XmlDocument = New XmlDocument()
document.Load("contosoBooks.xml")
Dim navigator As XPathNavigator = 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)

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

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

Element XPathNavigator jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody i zwraca wartość true. Element XPathNavigator nie jest umieszczony w nowym węźle po zakończeniu ReplaceSelf metody, gdy dane wejściowe XML są Empty w tym przypadku XPathNavigator umieszczone w następnym węźle równorzędnym lub w węźle nadrzędnym, jeśli nie ma kolejnego węzła równorzędnego do zastąpionego węzła i ReplaceSelf zwraca wartość false.

  • Metoda jest prawidłowa ReplaceSelf tylko wtedy, gdy XPathNavigator element jest umieszczony w węźle elementu, tekstu, przetwarzania instrukcji lub komentarza.

  • Jeśli ciąg danych XML nie jest poprawnie sformułowany niż zgłaszany wyjątek, a wynik tej metody jest odpowiednikiem wywołania DeleteSelf w bieżącym węźle.

  • Jeśli ciąg XML zawiera wiele węzłów, zostaną dodane wszystkie węzły, a XPathNavigator element zostanie umieszczony na pierwszym węźle w serii węzłów.

  • Metoda ReplaceSelf nie jest równoważna metodzie DeleteSelf .

Dotyczy