XPathNavigator.InsertElementAfter(String, String, String, String) Metodo

Definizione

Crea un nuovo elemento di pari livello dopo il 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 InsertElementAfter(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void InsertElementAfter (string prefix, string localName, string namespaceURI, string value);
public virtual void InsertElementAfter (string? prefix, string localName, string? namespaceURI, string? value);
abstract member InsertElementAfter : string * string * string * string -> unit
override this.InsertElementAfter : string * string * string * string -> unit
Public Overridable Sub InsertElementAfter (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 dopo il nodo corrente.

XPathNavigator non supporta la modifica.

Esempio

Nell'esempio seguente viene inserito un nuovo pages elemento dopo l'elemento price figlio del primo book elemento nel contosoBooks.xml file.

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->InsertElementAfter(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.InsertElementAfter(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.InsertElementAfter(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.InsertElementAfter(navigator.Prefix, "pages", LookupNamespaceURI(navigator.Prefix), String.Empty)  

In questo modo viene creato il nuovo elemento di pari <bk:pages/> livello.

Di seguito sono riportate note importanti da considerare quando si usa il InsertElementAfter 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 esiste 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 InsertElementAfter metodo è valido solo quando l'oggetto XPathNavigator viene posizionato su un elemento, testo, istruzione di elaborazione o nodo di commento.

  • Il InsertElementAfter metodo non influisce sulla posizione di XPathNavigator.

Si applica a