Compartilhar via


XPathNavigator.DeleteSelf Método

Definição

Exclui o nó atual e seus nós filho.

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

Exceções

O XPathNavigator é posicionado em um nó que não pode ser excluído, como o nó raiz ou um nó de namespace.

O XPathNavigator não dá suporte à edição.

Exemplos

No exemplo a seguir, o price elemento do primeiro book elemento do contosoBooks.xml arquivo é excluído usando o DeleteSelf método . A posição do objeto de XPathNavigator após o elemento de price é excluída está no elemento pai de book .

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)

O exemplo usa o arquivo contosoBooks.xml como entrada.

<?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>  

Comentários

  • O XPathNavigator é posicionado no nó pai do nó excluído na exclusão bem-sucedida.

  • Se o nó excluído for um nó de texto que é o conteúdo de um elemento tipado simples, o elemento perderá suas informações de tipo. Isso significa que, quando posicionadas no elemento , ValueType as XmlTypepropriedades e TypedValue têm os valores nulleEmpty, String respectivamente.

  • Nós excluídos ainda podem ser acessados por XPathNavigator objetos posicionados sobre eles antes da exclusão. No entanto, os métodos que tentam se afastar da subárvore excluída falham. Por exemplo, os MoveToParent métodos e MoveToPrevious sempre falham quando o XPathNavigator é posicionado sobre o nó mais excluído. Isso ocorre porque o nó excluído não está mais conectado ao documento XML. Da mesma forma, o MoveToNext método sempre falhará se o XPathNavigator estiver posicionado no nó mais excluído da parte inferior.

Aplica-se a