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

Definición

Crea un nuevo nodo de elemento secundario al final de la lista de nodos secundarios del nodo actual mediante el prefijo de espacio de nombres, el nombre local y el URI de espacio de nombres especificados con el valor seleccionado.

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

Parámetros

prefix
String

Prefijo del espacio de nombres del nuevo nodo de elemento secundario (si lo hay).

localName
String

Nombre local del nuevo nodo de elemento secundario (si lo hay).

namespaceURI
String

Identificador URI de espacio de nombres del nuevo nodo de elemento secundario (si lo hay). Empty y null son equivalentes.

value
String

Valor del nuevo nodo de elemento secundario. Si se pasan Empty o null, se crea un elemento vacío.

Excepciones

El nodo actual en el que está colocado XPathNavigator no es el nodo raíz o un nodo de elementos.

XPathNavigator no admite la edición.

Ejemplos

En el siguiente ejemplo se agrega un nuevo elemento secundario pages a la lista de elementos secundarios del primer elemento book del archivo 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->AppendChildElement(navigator->Prefix, "pages", navigator->LookupNamespace(navigator->Prefix), "100");

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

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

Console.WriteLine(navigator.OuterXml)

En el ejemplo se toma como entrada el archivo contosoBooks.xml.

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

Comentarios

Al anexar un nodo secundario, se agrega el nuevo nodo al final de la lista de nodos secundarios para el nodo actual. Por ejemplo, cuando existen tres nodos secundarios para un nodo de elemento, el nodo anexado se convierte en el cuarto nodo secundario. Si no existe ningún nodo secundario, se crea un nuevo nodo secundario.

Los valores de prefijo y URI del espacio de nombres se pueden obtener mediante el LookupPrefix método o el LookupNamespace método . Por ejemplo, la siguiente sintaxis anexa un elemento secundario mediante el espacio de nombres xmlns:bk=http://www.contoso.com/booksen el ámbito :

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

Esto crea el nuevo elemento secundario <bk:pages/> .

A continuación se muestran notas importantes que se deben tener en cuenta al usar el AppendChildElement método .

  • Si el prefijo de espacio de nombres especificado es null o String.Empty, el prefijo para el URI de espacio de nombres del nuevo elemento se obtiene de los espacios de nombres actuales en el ámbito. Si no hay ningún prefijo de espacio de nombres asignado al URI de espacio de nombres especificado en el ámbito actual, se genera automáticamente un prefijo de espacio de nombres.

  • El AppendChildElement método solo es válido cuando XPathNavigator se coloca en el nodo raíz o en un nodo de elemento.

  • El AppendChildElement método no afecta a la posición de XPathNavigator.

Se aplica a