XPathNavigator.DeleteSelf Méthode

Définition

Supprime le nœud actuel et ses nœuds enfants.

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

Exceptions

XPathNavigator est positionné sur un nœud qui ne peut pas être supprimé, par exemple le nœud racine ou un nœud d'espace de noms.

Le XPathNavigator ne prend pas en charge la modification.

Exemples

Dans l’exemple suivant, l’élément price du premier book élément du fichier est supprimé à l’aide contosoBooks.xml de la DeleteSelf méthode . Après la suppression de l'élément XPathNavigator, l'objet price est positionné sur l'élément book parent.

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)

L'exemple prend le fichier contosoBooks.xml comme entrée.

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

Remarques

  • XPathNavigator est positionné sur le nœud parent du nœud supprimé en cas de suppression réussie.

  • Si le nœud supprimé est un nœud de texte qui est le contenu d’un élément typé simple, l’élément perd ses informations de type. Cela signifie que, lorsqu’elles sont positionnées sur l’élément , les XmlTypepropriétés et TypedValue ont respectivement les valeurs null, String et Empty . ValueType

  • Les nœuds supprimés sont toujours accessibles aux XPathNavigator objets positionnés sur eux avant la suppression. Toutefois, les méthodes qui tentent de s’éloigner de la sous-arborescence supprimée échouent. Par exemple, les MoveToParent méthodes et MoveToPrevious échouent toujours lorsque le XPathNavigator est positionné sur le nœud le plus supprimé. En effet, le nœud supprimé n’est plus connecté au document XML. De même, la MoveToNext méthode échoue toujours si le XPathNavigator est positionné sur le nœud le plus supprimé en bas.

S’applique à