XPathNavigator.CreateAttributes Metod

Definition

Returnerar ett XmlWriter objekt som används för att skapa nya attribut för det aktuella elementet.

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

Returer

Ett XmlWriter objekt som används för att skapa nya attribut för det aktuella elementet.

Undantag

XPathNavigator Är inte placerad på en elementnod.

Stöder XPathNavigator inte redigering.

Exempel

I följande exempel skapas nya discount attribut och currency attribut på det price underordnade elementet i det första book elementet i contosoBooks.xml filen med hjälp av objektet XmlWriter som returneras från CreateAttributes metoden.

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)

Exemplet tar contosoBooks.xml filen som indata.

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

Kommentarer

Följande är viktiga att tänka på när du använder CreateAttributes metoden.

  • XPathNavigator När är placerad på ett element placeras de nya attributen XPathNavigator som skapats av metoden i slutet av attributlistan för det aktuella elementet.

  • De nya attributen Close infogas inte förrän -metoden för XmlWriter objektet anropas.

  • Om det angivna namnområdesprefixet är String.Empty eller nullhämtas prefixet för namnområdes-URI:n för det nya attributet från de aktuella namnrymderna i omfånget. Om det inte finns något namnområdesprefix tilldelat till den angivna namnområdes-URI:n i det aktuella omfånget genereras automatiskt ett namnområdesprefix. Om du till exempel vill skapa ett nytt attribut för ett element i filens contosoBooks.xml standardnamnområde (xmlns="http://www.contoso.com/books") anger null eller String.Empty för både namnområdesprefixet och namnområdets URI-parametrar. Om du anger http://www.contoso.com/books som URI-parameter för namnområdet genereras CreateAttribute automatiskt ett namnområdesprefix för det nya attributet.

  • Om det nya attributet som skapas är en namnområdesnod som står i konflikt med en namnområdesdeklaration för elementet, antingen för att det valda namnområdesprefixet används av en annan namnområdesdeklaration i samma omfång, eller för att det valda prefixet är detsamma som för elementet men är bundet till en annan namnområdes-URI, utlöses ett undantag.

  • Objektet XmlWriter som returneras kan bara användas för att skapa attribut. Om du anropar andra XmlWriter objektmetoder som inte skapar attribut genereras ett undantag.

  • Metoden CreateAttributes påverkar inte positionen för XPathNavigator.

Gäller för