Udostępnij za pośrednictwem


XPathNavigator.InsertBefore Metoda

Definicja

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

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 .

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

newSibling
XmlReader

XmlReader Obiekt umieszczony na danych XML dla nowego węzła równorzędnego.

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.

Dotyczy