Compartilhar via


XPathNavigator.InsertElementBefore(String, String, String, String) Método

Definição

Cria um novo elemento irmão antes do nó atual usando o prefixo de namespace, o nome local e o URI de namespace especificado, com o valor especificado.

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)

Parâmetros

prefix
String

O prefixo de namespace do novo elemento filho (se houver).

localName
String

O nome local do novo elemento filho (se houver).

namespaceURI
String

O URI de namespace do novo elemento filho (se houver). Empty e null são equivalentes.

value
String

O valor do novo elemento filho. Se Empty ou null for passado, um elemento vazio será criado.

Exceções

A posição do XPathNavigator não permite que um novo nó irmão seja inserido antes do nó atual.

O XPathNavigator não dá suporte à edição.

Exemplos

No exemplo a seguir um novo elemento de pages é inserido antes que o elemento filho de price do primeiro elemento de book no arquivo de 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)

O exemplo usa o arquivo contosoBooks.xml como entrada.

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

Comentários

Os valores de prefixo e URI de namespace podem ser obtidos usando o LookupPrefix método ou LookupNamespace . Por exemplo, a sintaxe a seguir insere um elemento irmão usando o namespace xmlns:bk="http://www.contoso.com/books"no escopo :

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

Isso cria o novo elemento irmão <bk:pages/> .

Veja a seguir notas importantes a serem consideradas ao usar o InsertElementBefore método .

  • Se o prefixo de namespace especificado for null ou String.Empty, o prefixo para o URI do namespace do novo elemento será obtido dos namespaces atuais no escopo. Se não houver nenhum prefixo de namespace atribuído ao URI do namespace especificado no escopo atual, um prefixo de namespace será gerado automaticamente.

  • O InsertElementBefore método é válido somente quando o XPathNavigator é posicionado em um elemento, texto, instrução de processamento ou nó de comentário.

  • O InsertElementBefore método não afeta a posição do XPathNavigator.

Aplica-se a