Sdílet prostřednictvím


XPathNavigator.CreateAttribute(String, String, String, String) Metoda

Definice

Vytvoří uzel atributu na aktuálním uzlu elementu pomocí předpony oboru názvů, místního názvu a identifikátoru URI oboru názvů zadaného se zadanou hodnotou.

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)

Parametry

prefix
String

Předpona oboru názvů nového uzlu atributu (pokud existuje).

localName
String

Místní název nového uzlu atributu, který nemůže nebo Emptynull.

namespaceURI
String

Identifikátor URI oboru názvů pro uzel nového atributu (pokud existuje).

value
String

Hodnota nového uzlu atributu. Pokud Empty jsou předány nebo null jsou předány, vytvoří se prázdný uzel atributu.

Výjimky

Objekt XPathNavigator není umístěn na uzlu elementu.

Nástroj XPathNavigator nepodporuje úpravy.

Příklady

V následujícím příkladu se vytvoří nový discount atribut pro price podřízený prvek prvního book elementu contosoBooks.xml v souboru.

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)

V příkladu se contosoBooks.xml soubor používá jako vstup.

<?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>  

Poznámky

Hodnoty předpony oboru názvů a identifikátoru URI lze získat pomocí LookupPrefix metody nebo LookupNamespace . Například následující syntaxe vytvoří atribut pomocí oboru názvů v oboru názvů xmlns:bk="http://www.contoso.com/books":

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

Tím se vytvoří nový atribut <bk:element attributeName="text"/> aktuálního elementu.

Následující důležité poznámky je potřeba při použití metody vzít v CreateAttribute úvahu.

  • Pokud je String.Empty zadaná předpona oboru názvů nebo null, získá se předpona identifikátoru URI oboru názvů nového atributu z aktuálních oborů názvů v oboru názvů. Pokud není k zadanému identifikátoru URI oboru názvů v aktuálním oboru přiřazena žádná předpona oboru názvů, automaticky se vygeneruje předpona oboru názvů. Chcete-li například vytvořit nový atribut pro prvek ve výchozím oboru názvů contosoBooks.xml souboru (xmlns="http://www.contoso.com/books"), zadáte null parametr nebo String.Empty pro předponu oboru názvů a parametry identifikátoru URI oboru názvů. Zadání http://www.contoso.com/books jako parametru identifikátoru URI oboru názvů způsobí, CreateAttribute že metoda automaticky vygeneruje předponu oboru názvů pro nový atribut.

  • Pokud je nový vytvořený atribut uzel oboru názvů, který je v konfliktu s deklarací oboru názvů elementu, buď proto, že zvolenou předponu oboru názvů používá jiná deklarace oboru názvů ve stejném oboru, nebo proto, že zvolená předpona je stejná jako předpona elementu, ale je vázána na jiný identifikátor URI oboru názvů, vyvolá se výjimka.

  • Metoda CreateAttribute nemá vliv na pozici XPathNavigatornástroje .

Platí pro