XPathNavigator.CreateAttributes Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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átenull
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.