Bagikan melalui


XPathNavigator.DeleteSelf Metode

Definisi

Menghapus simpul saat ini dan simpul turunannya.

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

Pengecualian

XPathNavigator diposisikan pada simpul yang tidak dapat dihapus seperti simpul akar atau simpul namespace.

XPathNavigator tidak mendukung pengeditan.

Contoh

Dalam contoh price berikut, elemen elemen contosoBooks.xml pertama book file dihapus menggunakan DeleteSelf metode . Posisi objek XPathNavigator setelah elemen price dihapus berada pada elemen book induk.

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)

Contoh mengambil file contosoBooks.xml sebagai 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>  

Keterangan

  • XPathNavigator diposisikan pada simpul induk simpul yang dihapus pada penghapusan yang berhasil.

  • Jika simpul yang dihapus adalah simpul teks yang merupakan konten elemen yang ditik sederhana, elemen kehilangan informasi jenisnya. Ini berarti bahwa ketika diposisikan pada elemen XmlType, ValueType dan TypedValue properti memiliki nilai null, String dan Empty masing-masing.

  • Simpul yang dihapus masih dapat diakses oleh XPathNavigator objek yang diposisikan di atasnya sebelum penghapusan. Namun metode yang mencoba untuk menjauh dari sub-pohon yang dihapus gagal. Misalnya, MoveToParent metode dan MoveToPrevious selalu gagal ketika XPathNavigator diposisikan di atas simpul paling banyak dihapus. Ini karena simpul yang dihapus tidak lagi tersambung ke dokumen XML. Demikian MoveToNext pula metode selalu gagal jika XPathNavigator diposisikan pada simpul paling bawah yang dihapus.

Berlaku untuk