XPathNavigator.CreateAttribute(String, String, String, String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
- 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 delcontosoBooks.xml
file, (xmlns="http://www.contoso.com/books"
), si specificanull
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.