XPathNavigator.InsertBefore 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í.
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem.
Přetížení
InsertBefore() |
XmlWriter Vrátí objekt použitý k vytvoření nového uzlu na stejné úrovni před aktuálně vybraným uzlem. |
InsertBefore(String) |
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí zadaného řetězce XML. |
InsertBefore(XmlReader) |
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí obsahu XML zadaného objektu XmlReader . |
InsertBefore(XPathNavigator) |
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí uzlů v zadaném XPathNavigator uzlu. |
InsertBefore()
XmlWriter Vrátí objekt použitý k vytvoření nového uzlu na stejné úrovni před aktuálně vybraným uzlem.
public:
virtual System::Xml::XmlWriter ^ InsertBefore();
public virtual System.Xml.XmlWriter InsertBefore ();
abstract member InsertBefore : unit -> System.Xml.XmlWriter
override this.InsertBefore : unit -> System.Xml.XmlWriter
Public Overridable Function InsertBefore () As XmlWriter
Návraty
Objekt XmlWriter použitý k vytvoření nového uzlu na stejné úrovni před aktuálně vybraným uzlem.
Výjimky
Pozice XPathNavigator uzlu neumožňuje vložení nového uzlu na stejné úrovni před aktuálním uzlem.
Nepodporuje XPathNavigator úpravy.
Příklady
V následujícím příkladu pages
se nový prvek vloží před price
podřízený prvek prvního book
prvku v contosoBooks.xml
souboru pomocí objektu XmlWriter vráceného metodou InsertBefore .
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");
XmlWriter^ pages = navigator->InsertBefore();
pages->WriteElementString("pages", "100");
pages->Close();
navigator->MoveToParent();
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");
XmlWriter pages = navigator.InsertBefore();
pages.WriteElementString("pages", "100");
pages.Close();
navigator.MoveToParent();
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")
Dim pages As XmlWriter = navigator.InsertBefore()
pages.WriteElementString("pages", "100")
pages.Close()
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
Příklad vezme contosoBooks.xml
soubor 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 používání InsertBefore metody je potřeba vzít v úvahu následující důležité poznámky.
Nový uzel na stejné úrovni není vložen, dokud Close není volána metoda objektu XmlWriter .
Metoda InsertBefore je platná pouze v případě, že XPathNavigator je umístěn na elementu, textu, zpracování instrukce nebo uzlu komentáře.
Metoda InsertBefore nemá vliv na pozici XPathNavigator.
Platí pro
InsertBefore(String)
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí zadaného řetězce XML.
public:
virtual void InsertBefore(System::String ^ newSibling);
public virtual void InsertBefore (string newSibling);
abstract member InsertBefore : string -> unit
override this.InsertBefore : string -> unit
Public Overridable Sub InsertBefore (newSibling As String)
Parametry
- newSibling
- String
Datový řetězec XML pro nový uzel seblízem.
Výjimky
Parametr řetězce XML je null
.
Pozice XPathNavigator uzlu neumožňuje vložení nového uzlu na stejné úrovni před aktuálním uzlem.
Nepodporuje XPathNavigator úpravy.
Parametr řetězce XML není správně vytvořen.
Příklady
V následujícím příkladu se vloží nový pages
prvek před price
podřízený prvek prvního book
prvku v contosoBooks.xml
souboru.
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->InsertBefore("<pages>100</pages>");
navigator->MoveToParent();
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.InsertBefore("<pages>100</pages>");
navigator.MoveToParent();
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.InsertBefore("<pages>100</pages>")
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
Příklad vezme contosoBooks.xml
soubor 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
Pokud chcete vytvořit nový uzel elementu, zahrňte do parametru řetězce XML veškerou syntaxi XML. Řetězec nového book
uzlu je InsertBefore("<book/>")
. Řetězec pro vložení textu "book" před textovým uzlem aktuálního uzlu je InsertBefore("book")
. Pokud řetězec XML obsahuje více uzlů, přidají se všechny uzly.
Při používání InsertBefore metody je potřeba vzít v úvahu následující důležité poznámky.
Metoda InsertBefore je platná pouze v případě, že XPathNavigator je umístěn na elementu, textu, zpracování instrukce nebo uzlu komentáře.
Metoda InsertBefore nemá vliv na pozici XPathNavigator.
Platí pro
InsertBefore(XmlReader)
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí obsahu XML zadaného objektu XmlReader .
public:
virtual void InsertBefore(System::Xml::XmlReader ^ newSibling);
public virtual void InsertBefore (System.Xml.XmlReader newSibling);
abstract member InsertBefore : System.Xml.XmlReader -> unit
override this.InsertBefore : System.Xml.XmlReader -> unit
Public Overridable Sub InsertBefore (newSibling As XmlReader)
Parametry
Výjimky
Objekt XmlReader je ve stavu chyby nebo je zavřený.
Parametr objektu XmlReader je null
.
Pozice XPathNavigator uzlu neumožňuje vložení nového uzlu na stejné úrovni před aktuálním uzlem.
Nepodporuje XPathNavigator úpravy.
Obsah XML parametru objektu XmlReader není správně vytvořen.
Příklady
V následujícím příkladu se vloží nový pages
prvek před price
podřízený prvek prvního book
prvku v contosoBooks.xml
souboru pomocí zadaného objektu XmlReader . Obor http://www.contoso.com/books
názvů je zadán tak, aby se nový prvek sesílání se stejným oborem názvů jako dokument XML vložil.
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");
XmlReader^ pages = XmlReader::Create(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
navigator->InsertBefore(pages);
navigator->MoveToParent();
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");
XmlReader pages = XmlReader.Create(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
navigator.InsertBefore(pages);
navigator.MoveToParent();
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")
Dim pages As XmlReader = XmlReader.Create(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
navigator.InsertBefore(pages)
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
Příklad vezme contosoBooks.xml
soubor 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 používání InsertBefore metody je potřeba vzít v úvahu následující důležité poznámky.
XmlReader Pokud se objekt umístí na posloupnost uzlů XML, přidají se všechny uzly v sekvenci.
Metoda InsertBefore je platná pouze v případě, že XPathNavigator je umístěn na elementu, textu, zpracování instrukce nebo uzlu komentáře.
Metoda InsertBefore nemá vliv na pozici XPathNavigator.
Platí pro
InsertBefore(XPathNavigator)
Vytvoří nový uzel se seznamem před aktuálně vybraným uzlem pomocí uzlů v zadaném XPathNavigator uzlu.
public:
virtual void InsertBefore(System::Xml::XPath::XPathNavigator ^ newSibling);
public virtual void InsertBefore (System.Xml.XPath.XPathNavigator newSibling);
abstract member InsertBefore : System.Xml.XPath.XPathNavigator -> unit
override this.InsertBefore : System.Xml.XPath.XPathNavigator -> unit
Public Overridable Sub InsertBefore (newSibling As XPathNavigator)
Parametry
- newSibling
- XPathNavigator
Objekt XPathNavigator umístěný na uzlu, který se má přidat jako nový uzel na stejné úrovni.
Výjimky
Parametr objektu XPathNavigator je null
.
Pozice XPathNavigator uzlu neumožňuje vložení nového uzlu na stejné úrovni před aktuálním uzlem.
Nepodporuje XPathNavigator úpravy.
Příklady
V následujícím příkladu se vloží nový pages
prvek před price
podřízený prvek prvního book
prvku v contosoBooks.xml
souboru pomocí uzlu obsaženého v objektu zadaném XPathNavigator . Obor http://www.contoso.com/books
názvů je zadán tak, aby se nový prvek sesílání se stejným oborem názvů jako dokument XML vložil.
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");
XmlDocument^ childNodes = gcnew XmlDocument();
childNodes->Load(gcnew StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator^ childNodesNavigator = childNodes->CreateNavigator();
navigator->InsertBefore(childNodesNavigator);
navigator->MoveToParent();
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");
XmlDocument childNodes = new XmlDocument();
childNodes.Load(new StringReader("<pages xmlns=\"http://www.contoso.com/books\">100</pages>"));
XPathNavigator childNodesNavigator = childNodes.CreateNavigator();
navigator.InsertBefore(childNodesNavigator);
navigator.MoveToParent();
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")
Dim childNodes As XmlDocument = New XmlDocument()
childNodes.Load(New StringReader("<pages xmlns='http://www.contoso.com/books'>100</pages>"))
Dim childNodesNavigator As XPathNavigator = childNodes.CreateNavigator()
navigator.InsertBefore(childNodesNavigator)
navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)
Příklad vezme contosoBooks.xml
soubor 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 používání InsertBefore metody je potřeba vzít v úvahu následující důležité poznámky.
XPathNavigator Pokud se objekt umístí na posloupnost uzlů XML, přidají se všechny uzly v sekvenci.
Metoda InsertBefore je platná pouze v případě, že XPathNavigator je umístěn na elementu, textu, zpracování instrukce nebo uzlu komentáře.
Metoda InsertBefore nemá vliv na pozici XPathNavigator.