XPathNavigator.DeleteSelf Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odstraní aktuální uzel a jeho podřízené uzly.
public:
virtual void DeleteSelf();
public virtual void DeleteSelf ();
abstract member DeleteSelf : unit -> unit
override this.DeleteSelf : unit -> unit
Public Overridable Sub DeleteSelf ()
Výjimky
Je XPathNavigator umístěn na uzlu, který nelze odstranit, například kořenový uzel nebo uzel oboru názvů.
Nástroj XPathNavigator nepodporuje úpravy.
Příklady
V následujícím příkladu price
je prvek prvního book
prvku contosoBooks.xml
souboru odstraněn pomocí DeleteSelf metody . Umístění objektu XPathNavigator po odstranění elementu price
je na nadřazený book
prvek.
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)
V příkladu se contosoBooks.xml
soubor používá jako vstup.
<?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>
Poznámky
Při XPathNavigator úspěšném odstranění se umístí na nadřazený uzel odstraněného uzlu.
Pokud je odstraněný uzel textovým uzlem, který je obsahem elementu jednoduchého typu, prvek ztratí informace o svém typu. To znamená, že při umístění na elementu XmlTypemají vlastnosti , ValueType a TypedValue hodnoty
null
, String a Empty v uvedeném pořadí.Odstraněné uzly jsou stále přístupné pro XPathNavigator objekty umístěné nad nimi před odstraněním. Metody, které se pokusí přejít z odstraněného pod stromového stromu, však selžou. Například metody a MoveToPrevious vždy selžou, MoveToParent když XPathNavigator je umístěna nad nejvyšším odstraněným uzlem. Je to proto, že odstraněný uzel už není připojený k dokumentu XML. Podobně MoveToNext metoda vždy selže, pokud XPathNavigator je umístěn na nejspodnější odstraněný uzel.