XPathNavigator.DeleteSelf Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Elimina el nodo actual y sus nodos secundarios.
public:
virtual void DeleteSelf();
public virtual void DeleteSelf ();
abstract member DeleteSelf : unit -> unit
override this.DeleteSelf : unit -> unit
Public Overridable Sub DeleteSelf ()
Excepciones
XPathNavigator está colocado en un nodo que no se puede eliminar, como el nodo raíz o un nodo de espacio de nombres.
XPathNavigator no admite la edición.
Ejemplos
En el ejemplo siguiente, el price
elemento del primer book
elemento del contosoBooks.xml
archivo se elimina mediante el DeleteSelf método . La posición del objeto XPathNavigator después de eliminar el elemento price
se encuentra en el elemento book
primario.
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)
En el ejemplo se toma como entrada el archivo 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>
Comentarios
se XPathNavigator coloca en el nodo primario del nodo eliminado cuando se elimina correctamente.
Si el nodo eliminado es un nodo de texto que es el contenido de un elemento con tipo simple, el elemento pierde su información de tipo. Esto significa que, cuando se coloca en el elemento , XmlTypeValueType las propiedades y TypedValue tienen los valores
null
, y Empty respectivamenteString.Los nodos eliminados siguen siendo accesibles para XPathNavigator los objetos colocados sobre ellos antes de la eliminación. Sin embargo, se produce un error en los métodos que intentan alejarse del subárbol eliminado. Por ejemplo, los MoveToParent métodos y MoveToPrevious siempre generan un error cuando XPathNavigator se coloca sobre el nodo más eliminado. Esto se debe a que el nodo eliminado ya no está conectado al documento XML. Del mismo modo, el MoveToNext método siempre produce un error si XPathNavigator está situado en el nodo más eliminado de la parte inferior.