XPathNavigator.CreateAttributes Methode

Definitie

Retourneert een XmlWriter object dat wordt gebruikt voor het maken van nieuwe kenmerken op het huidige element.

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

Retouren

Een XmlWriter object dat wordt gebruikt om nieuwe kenmerken op het huidige element te maken.

Uitzonderingen

Het XPathNavigator element bevindt zich niet op een elementknooppunt.

De XPathNavigator bewerking wordt niet ondersteund.

Voorbeelden

In het volgende voorbeeld worden nieuwe discount en currency attributen aangemaakt op het price kindelement van het eerste book element in het contosoBooks.xml bestand met behulp van het XmlWriter object dat is geretourneerd door de CreateAttributes methode.

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)

In het voorbeeld wordt het contosoBooks.xml bestand als invoer gebruikt.

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

Opmerkingen

Hier volgen belangrijke opmerkingen bij het gebruik van de CreateAttributes methode.

  • Wanneer de positie van de XPathNavigator elementen op een element is geplaatst, worden de nieuwe kenmerken die door de XPathNavigator methode zijn gemaakt, aan het einde van de kenmerkenlijst van het huidige element geplaatst.

  • De nieuwe kenmerken worden pas ingevoegd als de Close methode van het XmlWriter object wordt aangeroepen.

  • Als het opgegeven voorvoegsel voor de naamruimte is String.Empty of null, wordt het voorvoegsel voor de naamruimte-URI van het nieuwe kenmerk verkregen uit de huidige naamruimten binnen het bereik. Als er geen naamruimtevoorvoegsel is toegewezen aan de opgegeven naamruimte-URI in het huidige bereik, wordt automatisch een naamruimtevoorvoegsel gegenereerd. Als u bijvoorbeeld een nieuw kenmerk wilt maken voor een element in de standaardnaamruimte van het contosoBooks.xml bestand (xmlns="http://www.contoso.com/books"), geeft null u op of String.Empty voor zowel het voorvoegsel van de naamruimte als de URI-parameters voor de naamruimte. http://www.contoso.com/books Als u opgeeft als de parameter voor de naamruimte-URI, wordt door de CreateAttribute methode automatisch een naamruimtevoorvoegsel voor het nieuwe kenmerk gegenereerd.

  • Als het nieuwe kenmerk dat is gemaakt een naamruimteknooppunt is dat conflicteert met een naamruimtedeclaratie op het element, omdat het gekozen naamruimtevoorvoegsel wordt gebruikt door een andere naamruimtedeclaratie in hetzelfde bereik, of omdat het gekozen voorvoegsel hetzelfde is als dat van het element, maar afhankelijk is van een andere naamruimte-URI, wordt er een uitzondering gegenereerd.

  • Het XmlWriter geretourneerde object kan alleen worden gebruikt om kenmerken te maken. Het aanroepen van andere XmlWriter objectmethoden die geen kenmerken maken, genereert een uitzondering.

  • De CreateAttributes methode heeft geen invloed op de positie van de XPathNavigator.

Van toepassing op