XPathNavigator.DeleteSelf Methode

Definition

Löscht den aktuellen Knoten und dessen untergeordnete Knoten.

public:
 virtual void DeleteSelf();
public virtual void DeleteSelf ();
abstract member DeleteSelf : unit -> unit
override this.DeleteSelf : unit -> unit
Public Overridable Sub DeleteSelf ()

Ausnahmen

Der XPathNavigator zeigt auf einen Knoten, der nicht gelöscht werden kann, z. B. den Stammknoten oder einen Namespaceknoten.

Der XPathNavigator unterstützt keine Bearbeitung.

Beispiele

Im folgenden Beispiel wird das price Element des ersten book Elements der contosoBooks.xml Datei mithilfe der DeleteSelf -Methode gelöscht. Die Position des XPathNavigator-Objekts, nachdem das price-Element im übergeordneten book-Element gelöscht wurde.

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

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.DeleteSelf();

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.DeleteSelf()

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

  • Der XPathNavigator wird bei erfolgreicher Löschung auf dem übergeordneten Knoten des gelöschten Knotens positioniert.

  • Wenn der gelöschte Knoten ein Textknoten ist, der der Inhalt eines einfachen typisierten Elements ist, verliert das Element seine Typinformationen. Dies bedeutet, dass bei Positionierung auf das Element der XmlType, ValueType und TypedValue Eigenschaften verfügen über die null, String und Empty bzw.

  • Gelöschte Knoten sind weiterhin für Objekte zugänglich, die XPathNavigator vor dem Löschen über ihnen positioniert wurden. Methoden, die versuchen, sich von der gelöschten Unterstruktur zu entfernen, schlagen jedoch fehl. Beispielsweise schlagen die MoveToParent Methoden und MoveToPrevious immer fehl, wenn der XPathNavigator über dem am häufigsten gelöschten Knoten positioniert ist. Dies liegt daran, dass der gelöschte Knoten nicht mehr mit dem XML-Dokument verbunden ist. Ebenso schlägt die MoveToNext Methode immer fehl, wenn der XPathNavigator auf dem untersten gelöschten Knoten positioniert ist.

Gilt für: