XPathNavigator.DeleteSelf Yöntem

Tanım

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 nullsahip 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.

Şunlara uygulanır