Condividi tramite


XPathNavigator.CreateAttribute(String, String, String, String) Metodo

Definizione

Crea un nodo attributo in corrispondenza del nodo elemento corrente usando il prefisso dello spazio dei nomi, il nome locale e l'URI dello spazio dei nomi specificati con il valore specificato.

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)

Parametri

prefix
String

Prefisso dello spazio dei nomi del nuovo nodo attributo, se presente.

localName
String

Nome locale del nuovo nodo attributo (non può essere Empty o null).

namespaceURI
String

URI dello spazio dei nomi del nuovo nodo attributo, se presente.

value
String

Valore del nuovo nodo attributo. Se vengono passati i valori Empty o null, viene creato un nodo attributo vuoto.

Eccezioni

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

XPathNavigator non supporta la modifica.

Esempio

Nell'esempio seguente viene creato un nuovo discount attributo sull'elemento price figlio del primo book elemento del contosoBooks.xml file.

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)

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

I valori di prefisso e URI dello spazio dei nomi possono essere ottenuti usando il LookupPrefix metodo o LookupNamespace . Ad esempio, la sintassi seguente crea un attributo usando lo spazio dei nomi xmlns:bk="http://www.contoso.com/books"nell'ambito :

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

In questo modo viene creato il nuovo attributo <bk:element attributeName="text"/> nell'elemento corrente.

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

  • 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.

  • Il CreateAttribute metodo non influisce sulla posizione di XPathNavigator.

Si applica a