XPathNavigator.DeleteSelf Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.