XPathNavigator.DeleteSelf Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
null
eEmpty, 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.