XPathNavigator.InsertBefore Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem.
Przeciążenia
InsertBefore() |
XmlWriter Zwraca obiekt używany do tworzenia nowego węzła równorzędnego przed aktualnie wybranym węzłem. |
InsertBefore(String) |
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu określonego ciągu XML. |
InsertBefore(XmlReader) |
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu zawartości XML określonego XmlReader obiektu. |
InsertBefore(XPathNavigator) |
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu węzłów w XPathNavigator określonym. |
InsertBefore()
XmlWriter Zwraca obiekt używany do tworzenia nowego węzła równorzędnego przed aktualnie wybranym węzłem.
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
Zwraca
XmlWriter Obiekt używany do tworzenia nowego węzła równorzędnego przed aktualnie wybranym węzłem.
Wyjątki
Pozycja węzła XPathNavigator nie zezwala na wstawianie nowego węzła równorzędnego przed bieżącym węzłem.
Element XPathNavigator nie obsługuje edycji.
Przykłady
W poniższym przykładzie nowy pages
element jest wstawiany przed price
elementem podrzędnym pierwszego book
elementu w contosoBooks.xml
pliku przy użyciu XmlWriter obiektu zwróconego przez metodę 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)
W przykładzie contosoBooks.xml
plik jest pobierany jako dane wejściowe.
<?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>
Uwagi
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z InsertBefore metody .
Nowy węzeł równorzędny nie jest wstawiany do momentu Close wywołania XmlWriter metody obiektu.
Metoda jest prawidłowa InsertBefore tylko wtedy, gdy XPathNavigator element jest umieszczony w elemecie, tekście, instrukcji przetwarzania lub węźle komentarza.
Metoda InsertBefore nie ma wpływu na położenie obiektu XPathNavigator.
Dotyczy
InsertBefore(String)
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu określonego ciągu 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
Ciąg danych XML dla nowego węzła równorzędnego.
Wyjątki
Parametr ciągu XML to null
.
Pozycja węzła XPathNavigator nie zezwala na wstawianie nowego węzła równorzędnego przed bieżącym węzłem.
Element XPathNavigator nie obsługuje edycji.
Parametr ciągu XML nie jest dobrze sformułowany.
Przykłady
W poniższym przykładzie nowy pages
element jest wstawiany przed price
elementem podrzędnym pierwszego book
elementu w contosoBooks.xml
pliku.
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)
W przykładzie contosoBooks.xml
plik jest pobierany jako dane wejściowe.
<?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>
Uwagi
Aby utworzyć nowy węzeł elementu, dołącz całą składnię XML do parametru ciągu XML. Ciąg nowego book
węzła to InsertBefore("<book/>")
. Ciąg do wstawiania tekstu "book" przed węzłem tekstowym bieżącego węzła to InsertBefore("book")
. Jeśli ciąg XML zawiera wiele węzłów, zostaną dodane wszystkie węzły.
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z InsertBefore metody .
Metoda jest prawidłowa InsertBefore tylko wtedy, gdy XPathNavigator element jest umieszczony w elemecie, tekście, instrukcji przetwarzania lub węźle komentarza.
Metoda InsertBefore nie ma wpływu na położenie obiektu XPathNavigator.
Dotyczy
InsertBefore(XmlReader)
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu zawartości XML określonego XmlReader obiektu.
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
Wyjątki
XmlReader Obiekt jest w stanie błędu lub jest zamknięty.
XmlReader Parametr obiektu to null
.
Pozycja węzła XPathNavigator nie zezwala na wstawianie nowego węzła równorzędnego przed bieżącym węzłem.
Element XPathNavigator nie obsługuje edycji.
Zawartość XML parametru XmlReader obiektu nie jest dobrze sformułowana.
Przykłady
W poniższym przykładzie nowy pages
element jest wstawiany przed price
elementem podrzędnym pierwszego book
elementu w contosoBooks.xml
pliku przy użyciu określonego XmlReader obiektu. Przestrzeń nazw jest określona http://www.contoso.com/books
tak, aby nowy element równorzędny był wstawiany przy użyciu tej samej przestrzeni nazw co dokument XML.
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)
W przykładzie contosoBooks.xml
plik jest pobierany jako dane wejściowe.
<?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>
Uwagi
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z InsertBefore metody .
XmlReader Jeśli obiekt jest umieszczony w sekwencji węzłów XML, zostaną dodane wszystkie węzły w sekwencji.
Metoda jest prawidłowa InsertBefore tylko wtedy, gdy XPathNavigator element jest umieszczony w elemecie, tekście, instrukcji przetwarzania lub węźle komentarza.
Metoda InsertBefore nie ma wpływu na położenie obiektu XPathNavigator.
Dotyczy
InsertBefore(XPathNavigator)
Tworzy nowy węzeł równorzędny przed aktualnie wybranym węzłem przy użyciu węzłów w XPathNavigator określonym.
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
XPathNavigator Obiekt umieszczony w węźle, który ma zostać dodany jako nowy węzeł równorzędny.
Wyjątki
XPathNavigator Parametr obiektu to null
.
Pozycja węzła XPathNavigator nie zezwala na wstawianie nowego węzła równorzędnego przed bieżącym węzłem.
Element XPathNavigator nie obsługuje edycji.
Przykłady
W poniższym przykładzie nowy pages
element jest wstawiany przed price
elementem podrzędnym pierwszego book
elementu w contosoBooks.xml
pliku przy użyciu węzła zawartego XPathNavigator w określonym obiekcie. Przestrzeń nazw jest określona http://www.contoso.com/books
tak, aby nowy element równorzędny był wstawiany przy użyciu tej samej przestrzeni nazw co dokument XML.
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)
W przykładzie contosoBooks.xml
plik jest pobierany jako dane wejściowe.
<?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>
Uwagi
Poniżej przedstawiono ważne uwagi, które należy wziąć pod uwagę podczas korzystania z InsertBefore metody .
XPathNavigator Jeśli obiekt jest umieszczony w sekwencji węzłów XML, zostaną dodane wszystkie węzły w sekwencji.
Metoda jest prawidłowa InsertBefore tylko wtedy, gdy XPathNavigator element jest umieszczony w elemecie, tekście, instrukcji przetwarzania lub węźle komentarza.
Metoda InsertBefore nie ma wpływu na położenie obiektu XPathNavigator.