XPathNavigator.CreateAttributes Methode

Definition

Gibt ein XmlWriter-Objekt zurück, mit dem neue Attribute für das aktuelle Element erstellt werden können.

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

Gibt zurück

Ein XmlWriter-Objekt, mit dem neue Attribute für das aktuelle Element erstellt werden können.

Ausnahmen

Der XPathNavigator ist nicht auf einem Elementknoten positioniert.

Der XPathNavigator unterstützt keine Bearbeitung.

Beispiele

Im folgenden Beispiel werden mit dem von der discount-Methode zurückgegebenen currency-Objekt im untergeordneten price-Element des ersten book-Elements in der Datei contosoBooks.xml ein neues XmlWriter-Attribut und ein neues CreateAttributes-Attribut erstellt.

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)

In diesem Beispiel wird die Datei contosoBooks.xml als Eingabe verwendet.

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

Hinweise

Die folgenden wichtigen Hinweise sollten bei der Verwendung der CreateAttributes -Methode berücksichtigt werden.

  • Wenn die XPathNavigator in einem Element positioniert ist, werden die neuen Attribute, die von der XPathNavigator -Methode erstellt wurden, am Ende der Attributliste des aktuellen Elements platziert.

  • Die neuen Attribute werden erst eingefügt, wenn die Close -Methode des XmlWriter -Objekts aufgerufen wird.

  • Wenn das angegebene Namespacepräfix oder nullistString.Empty, wird das Präfix für den Namespace-URI des neuen Attributs aus den aktuellen Namespaces im Bereich abgerufen. Wenn dem angegebenen Namespace-URI im aktuellen Bereich kein Namespacepräfix zugewiesen ist, wird automatisch ein Namespacepräfix generiert. Um beispielsweise ein neues Attribut für ein Element im Standardnamespace der contosoBooks.xml Datei (xmlns="http://www.contoso.com/books") zu erstellen, geben null Sie oder String.Empty sowohl für das Namespacepräfix als auch für den Namespace-URI-Parameter an. Wenn Sie als Namespace-URI-Parameter angeben http://www.contoso.com/books , generiert die CreateAttribute Methode automatisch ein Namespacepräfix für das neue Attribut.

  • Wenn das neu erstellte Attribut ein Namespaceknoten ist, der mit einer Namespacedeklaration für das Element in Konflikt steht, entweder weil das ausgewählte Namespacepräfix von einer anderen Namespacedeklaration im gleichen Bereich verwendet wird, oder weil das ausgewählte Präfix mit dem des Elements identisch ist, aber an einen anderen Namespace-URI gebunden ist, wird eine Ausnahme ausgelöst.

  • Das XmlWriter zurückgegebene Objekt darf nur zum Erstellen von Attributen verwendet werden. Das Aufrufen anderer XmlWriter Objektmethoden, die keine Attribute erstellen, löst eine Ausnahme aus.

  • Die CreateAttributes -Methode wirkt sich nicht auf die Position von aus XPathNavigator.

Gilt für: