XPathNavigator.CreateAttributes Metodo

Definizione

Restituisce un oggetto XmlWriter utilizzato per creare nuovi attributi nell'elemento corrente.

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

Restituisce

Oggetto XmlWriter usato per creare nuovi attributi nell'elemento corrente.

Eccezioni

L'oggetto XPathNavigator non è posizionato in corrispondenza di un nodo elemento.

XPathNavigator non supporta la modifica.

Esempio

Nell'esempio seguente vengono creati nuovi attributi discount e currency sull'elemento figlio price del primo elemento book nel file contosoBooks.xml usando l'oggetto XmlWriter restituito dal metodo 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)

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

Di seguito sono riportate note importanti da considerare quando si usa il CreateAttributes metodo .

  • Quando l'oggetto XPathNavigator viene posizionato su un elemento, i nuovi attributi creati dal XPathNavigator metodo vengono posizionati alla fine dell'elenco di attributi dell'elemento corrente.

  • I nuovi attributi non vengono inseriti finché non viene chiamato il Close metodo dell'oggetto XmlWriter .

  • Se il prefisso dello spazio dei nomi specificato è String.Empty o null, il prefisso per l'URI dello spazio dei nomi del nuovo attributo 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. Ad esempio, per creare un nuovo attributo in un elemento nello spazio dei nomi predefinito del contosoBooks.xml file, (xmlns="http://www.contoso.com/books"), si specifica null o String.Empty per entrambi i parametri URI dello spazio dei nomi e spazio dei nomi. http://www.contoso.com/books Se si specifica come parametro URI dello spazio dei nomi, il CreateAttribute metodo genererà automaticamente un prefisso dello spazio dei nomi per il nuovo attributo.

  • Se il nuovo attributo creato è un nodo dello spazio dei nomi in conflitto con una dichiarazione dello spazio dei nomi sull'elemento, poiché il prefisso dello spazio dei nomi scelto viene usato da un'altra dichiarazione dello spazio dei nomi nello stesso ambito oppure perché il prefisso scelto è uguale a quello dell'elemento ma è associato a un URI dello spazio dei nomi diverso, viene generata un'eccezione.

  • L'oggetto XmlWriter restituito può essere usato solo per creare attributi. La chiamata di altri XmlWriter metodi oggetto che non creano attributi genera un'eccezione.

  • Il CreateAttributes metodo non influisce sulla posizione di XPathNavigator.

Si applica a