XPathNavigator.DeleteSelf Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli düğümü ve alt düğümlerini siler.
public:
virtual void DeleteSelf();
public virtual void DeleteSelf ();
abstract member DeleteSelf : unit -> unit
override this.DeleteSelf : unit -> unit
Public Overridable Sub DeleteSelf ()
Özel durumlar
XPathNavigator, kök düğüm veya ad alanı düğümü gibi silinemeyen bir düğüme konumlandırılır.
düzenlemeyi XPathNavigator desteklemez.
Örnekler
Aşağıdaki örnekte dosyasının price
ilk book
öğesinin contosoBooks.xml
öğesi yöntemi kullanılarak DeleteSelf silinir. öğe silindikten sonra nesnenin price
konumu XPathNavigator üst book
öğededir.
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)
Örnek, dosyayı giriş olarak alır contosoBooks.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>
Açıklamalar
başarılı XPathNavigator silme işleminde silinen düğümün üst düğümüne konumlandırılır.
Silinen düğüm, basit türlenmiş bir öğenin içeriği olan bir metin düğümüyse, öğe tür bilgilerini kaybeder. Bu, öğesinde XmlTypeValueType konumlandırıldığında ve TypedValue özelliklerinin sırasıyla ve EmptyString değerlerine
null
sahip olduğu anlamına gelir.Silinen düğümlere, silinmeden önce üzerlerine konumlandırılan nesneler erişebilir XPathNavigator . Ancak silinen alt ağaçtan uzaklaşmaya çalışan yöntemler başarısız olur. Örneğin, MoveToParent ve MoveToPrevious yöntemleri her zaman en çok silinen en üst düğüm üzerinde konumlandırıldığında XPathNavigator başarısız olur. Bunun nedeni, silinen düğümün artık XML belgesine bağlı olmamasıdır. Benzer şekilde MoveToNext yöntemi, en alttaki silinmiş düğüme konumlandırılırsa XPathNavigator her zaman başarısız olur.