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

Definición

Crea un nodo de atributo en el nodo del elemento actual usando el prefijo de espacio de nombres, el nombre local y el URI de espacio de nombres especificado con el valor especificado.

public:
 virtual void CreateAttribute(System::String ^ prefix, System::String ^ localName, System::String ^ namespaceURI, System::String ^ value);
public virtual void CreateAttribute (string prefix, string localName, string namespaceURI, string value);
public virtual void CreateAttribute (string? prefix, string localName, string? namespaceURI, string? value);
abstract member CreateAttribute : string * string * string * string -> unit
override this.CreateAttribute : string * string * string * string -> unit
Public Overridable Sub CreateAttribute (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 atributo (si lo hay).

localName
String

Nombre local del nuevo nodo de atributo que no puede ser Empty ni null.

namespaceURI
String

URI de espacio de nombres del nuevo nodo de atributo (si lo hay).

value
String

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

Excepciones

El XPathNavigator no está situado en ningún nodo de elemento.

XPathNavigator no admite la edición.

Ejemplos

En el ejemplo siguiente, se crea un nuevo discount atributo en el price elemento secundario del primer book elemento del contosoBooks.xml archivo.

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->CreateAttribute("", "discount", "", "1.00");

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.CreateAttribute("", "discount", "", "1.00");

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.CreateAttribute("", "discount", "", "1.00")

navigator.MoveToParent()
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

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

editor.CreateAttribute(navigator.Prefix, "attributeName", LookupNamespace(navigator.Prefix), "text")  

Esto crea el nuevo atributo <bk:element attributeName="text"/> en el elemento actual.

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

  • Si el prefijo de espacio de nombres especificado es String.Empty o null, el prefijo para el URI de espacio de nombres del nuevo atributo 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. Por ejemplo, para crear un nuevo atributo en un elemento del espacio de nombres predeterminado del contosoBooks.xml archivo, (xmlns="http://www.contoso.com/books"), especifique null o String.Empty para los parámetros de prefijo de espacio de nombres y URI de espacio de nombres. Si se especifica http://www.contoso.com/books como el parámetro URI del espacio de nombres, el CreateAttribute método generará automáticamente un prefijo de espacio de nombres para el nuevo atributo.

  • Si el nuevo atributo creado es un nodo de espacio de nombres que entra en conflicto con una declaración de espacio de nombres en el elemento, ya sea porque el prefijo de espacio de nombres elegido se usa mediante otra declaración de espacio de nombres en el mismo ámbito, o porque el prefijo elegido es el mismo que el del elemento pero está enlazado a un URI de espacio de nombres diferente, se produce una excepción.

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

Se aplica a