XPathNavigator.CreateAttributes Metoda

Definice

XmlWriter Vrátí objekt použitý k vytvoření nových atributů v aktuálním elementu.

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

Návraty

Objekt XmlWriter použitý k vytvoření nových atributů v aktuálním elementu.

Výjimky

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

Nástroj XPathNavigator nepodporuje úpravy.

Příklady

V následujícím příkladu se vytvoří nové discount atributy a currency v podřízené price elementu prvního book elementu contosoBooks.xml v souboru pomocí objektu XmlWriter vráceného z CreateAttributes metody .

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)

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

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

  • XPathNavigator Při umístění na elementu jsou nové atributy vytvořené metodou XPathNavigator umístěny na konci seznamu atributů aktuálního elementu.

  • Nové atributy nejsou vloženy, dokud Close není volána metoda objektu XmlWriter .

  • Pokud je String.Empty zadaná předpona oboru názvů nebo null, získá se předpona pro identifikátor 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 názvů přiřazena žádná předpona oboru názvů, automaticky se vygeneruje předpona oboru názvů. Pokud chcete například vytvořit nový atribut u elementu ve výchozím oboru názvů contosoBooks.xml souboru (xmlns="http://www.contoso.com/books"), zadáte null parametr nebo String.Empty jako parametry předpony oboru názvů a 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 zvolená předpona oboru názvů je používána jinou deklarací oboru názvů ve stejném oboru názvů, 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.

  • Vrácený XmlWriter objekt lze použít pouze k vytvoření atributů. Volání jiných XmlWriter objektových metod, které nevytáčí atributy, vyvolá výjimku.

  • Metoda CreateAttributes nemá vliv na pozici metody XPathNavigator.

Platí pro