XPathNavigator.CreateAttributes Método

Definición

Devuelve un objeto XmlWriter utilizado para crear nuevos atributos en el elemento actual.

public:
 virtual System::Xml::XmlWriter ^ CreateAttributes();
public virtual System.Xml.XmlWriter CreateAttributes ();
abstract member CreateAttributes : unit -> System.Xml.XmlWriter
override this.CreateAttributes : unit -> System.Xml.XmlWriter
Public Overridable Function CreateAttributes () As XmlWriter

Devoluciones

Objeto XmlWriter usado para crear nuevos atributos en el elemento actual.

Excepciones

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

XPathNavigator no admite la edición.

Ejemplos

En el siguiente ejemplo se crean nuevos atributos discount y currency en el elemento secundario price del primer elemento book del archivo contosoBooks.xml utilizando el objeto XmlWriter devuelto desde el método CreateAttributes.

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");

XmlWriter^ attributes = navigator->CreateAttributes();

attributes->WriteAttributeString("discount", "1.00");
attributes->WriteAttributeString("currency", "USD");
attributes->Close();

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");

XmlWriter attributes = navigator.CreateAttributes();

attributes.WriteAttributeString("discount", "1.00");
attributes.WriteAttributeString("currency", "USD");
attributes.Close();

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")

Dim attributes As XmlWriter = navigator.CreateAttributes()

attributes.WriteAttributeString("discount", "1.00")
attributes.WriteAttributeString("currency", "USD")
attributes.Close()

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

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

  • XPathNavigator Cuando se coloca en un elemento , los nuevos atributos creados por el XPathNavigator método se colocan al final de la lista de atributos del elemento actual.

  • Los nuevos atributos no se insertan hasta que se llama al Close método del XmlWriter objeto .

  • 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 XmlWriter objeto devuelto solo se puede usar para crear atributos. La llamada a otros XmlWriter métodos de objeto que no crean atributos produce una excepción.

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

Se aplica a