Condividi tramite


XPathNavigator.InsertElementBefore(String, String, String, String) Metodo

Definizione

Crea un nuovo elemento di pari livello prima del nodo corrente usando il prefisso dello spazio dei nomi, il nome locale e l'URI dello spazio dei nomi specificati con il valore specificato.

public:
 virtual void InsertElementBefore(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void InsertElementBefore (string prefix, string localName, string namespaceURI, string value);
public virtual void InsertElementBefore (string? prefix, string localName, string? namespaceURI, string? value);
abstract member InsertElementBefore : string * string * string * string -> unit
override this.InsertElementBefore : string * string * string * string -> unit
Public Overridable Sub InsertElementBefore (prefix As String, localName As String, namespaceURI As String, value As String)

Parametri

prefix
String

Prefisso dello spazio dei nomi del nuovo elemento figlio, se presente.

localName
String

Nome locale del nuovo elemento figlio, se presente.

namespaceURI
String

URI dello spazio dei nomi del nuovo elemento figlio, se presente. Empty e null si equivalgono.

value
String

Valore del nuovo elemento figlio. Se viene passato Empty o null, viene creato un elemento vuoto.

Eccezioni

La posizione dell'oggetto XPathNavigator non consente l'inserimento di un nuovo nodo di pari livello prima del nodo corrente.

XPathNavigator non supporta la modifica.

Esempio

Nell'esempio seguente viene inserito un nuovo elemento pages prima dell'elemento figlio price del primo elemento book nel file contosoBooks.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");

navigator->InsertElementBefore(navigator->Prefix, "pages", navigator->LookupNamespace(navigator->Prefix), "100");

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.InsertElementBefore(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100");

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.InsertElementBefore(navigator.Prefix, "pages", navigator.LookupNamespace(navigator.Prefix), "100")

navigator.MoveToParent()
Console.WriteLine(navigator.OuterXml)

Nell'esempio il file contosoBooks.xml viene considerato come input.

<?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>  

Commenti

I valori di prefisso e URI dello spazio dei nomi possono essere ottenuti usando il LookupPrefix metodo o LookupNamespace . Ad esempio, la sintassi seguente inserisce un elemento di pari livello usando lo spazio dei nomi xmlns:bk="http://www.contoso.com/books"nell'ambito :

navigator.InsertElementBefore(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)  

Verrà creato il nuovo elemento di pari livello <bk:pages/> .

Di seguito sono riportate note importanti da considerare quando si usa il InsertElementBefore metodo .

  • Se il prefisso dello spazio dei nomi specificato è null o String.Empty, il prefisso per l'URI dello spazio dei nomi del nuovo elemento viene ottenuto dagli spazi dei nomi correnti nell'ambito. Se non è presente alcun prefisso dello spazio dei nomi assegnato all'URI dello spazio dei nomi specificato nell'ambito corrente, viene generato automaticamente un prefisso dello spazio dei nomi.

  • Il InsertElementBefore metodo è valido solo quando l'oggetto XPathNavigator è posizionato su un elemento, testo, istruzione di elaborazione o nodo di commento.

  • Il InsertElementBefore metodo non influisce sulla posizione dell'oggetto XPathNavigator.

Si applica a