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 být Empty nebo null.

namespaceURI
String

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

value
String

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

Výjimky

Není XPathNavigator umístěn na uzlu elementu.

Nepodporuje XPathNavigator úpravy.

Příklady

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

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)

Příklad vezme contosoBooks.xml soubor 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 LookupPrefix URI lze získat pomocí metody nebo LookupNamespace metody. Například následující syntaxe vytvoří atribut pomocí oboru názvů v oboru: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"/> pro aktuální prvek.

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

  • Pokud je zadaná String.Empty předpona oboru názvů nebo null, předpona identifikátoru URI oboru názvů nového atributu se získá z aktuálních oborů názvů v oboru. Pokud není k zadanému identifikátoru URI oboru názvů přiřazena žádná předpona oboru názvů v aktuálním oboru, 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 nebo String.Empty pro předponu oboru názvů i parametry identifikátoru URI oboru názvů. Zadání http://www.contoso.com/books jako parametr URI oboru názvů způsobí CreateAttribute , že metoda automaticky vygeneruje předponu oboru názvů pro nový atribut.

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

  • Metoda CreateAttribute nemá vliv na pozici XPathNavigator.

Platí pro