Auf Englisch lesen

Teilen über


Extensions.CreateNavigator Methode

Definition

Erstellt einen XPathNavigator für einen XNode.

Überlädt

CreateNavigator(XNode)

Erstellt einen XPathNavigator für einen XNode.

CreateNavigator(XNode, XmlNameTable)

Erstellt einen XPathNavigator für einen XNode. Die XmlNameTable ermöglicht eine effizientere Verarbeitung von XPath-Ausdrücken.

Hinweise

Sie können die XPathNavigator XML-Struktur nicht mithilfe der von dieser Methode zurückgegebenen XML-Struktur bearbeiten. Die CanEdit-Eigenschaft gibt false zurück.

Sie können keinen XPathNavigator XDocumentType Knoten erstellen. Dokumenttypen nehmen nicht an dem XPath-Datenmodell teil.

Namespacedeklarationen werden von links nach rechts gemeldet. Im Gegensatz XmlDocumentdazu werden Namespaces von rechts nach links gemeldet. Dies ist konformes Verhalten, da Namespacedeklarationen nicht im XPath-Datenmodell angeordnet sind.

Die Methode wird für Navigatoren, die von dieser Methode MoveToId zurückgegeben werden, nicht unterstützt.

Sie können diese Methode verwenden, um eine XSLT-Transformation auszuführen. Sie können eine XML-Struktur erstellen, eine aus der XML-Struktur erstellen, XPathNavigator ein neues Dokument erstellen und ein XmlWriter neues Dokument erstellen, das in das neue Dokument geschrieben wird. Anschließend können Sie die XSLT-Transformation aufrufen und den XPathNavigator sowie den XmlWriter an die Transformation übergeben. Nach erfolgreichem Abschluss der Transformation wird die neue XML-Struktur mit den Ergebnissen der Transformation aufgefüllt.

Um eine XSLT-Transformation auszuführen, können Sie entweder eine oder eine XmlReader XPathNavigator. Die beiden Ansätze weisen unterschiedliche Leistungseigenschaften auf. Einige Transformationen werden schneller ausgeführt, wenn eine XmlReaderVerwendung verwendet wird, und andere werden schneller ausgeführt, wenn eine XPathNavigatorVerwendung verwendet wird. Wenn die Leistung ein Anliegen ist, empfehlen wir, mit jedem Ansatz zu experimentieren, um zu ermitteln, welche in Ihren Umständen besser funktionieren.

CreateNavigator(XNode)

Erstellt einen XPathNavigator für einen XNode.

C#
public static System.Xml.XPath.XPathNavigator CreateNavigator (this System.Xml.Linq.XNode node);

Parameter

node
XNode

Ein XNode, der XPath-Abfragen verarbeiten kann.

Gibt zurück

XPathNavigator

Ein XPathNavigator, der XPath-Abfragen verarbeiten kann.

Beispiele

C#
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using System.Xml.Xsl;

string xslMarkup = @"<?xml version='1.0'?>  
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>  
    <xsl:template match='/Parent'>  
        <Root>  
            <C1><xsl:value-of select='Child1'/></C1>  
            <C2><xsl:value-of select='Child2'/></C2>  
        </Root>  
    </xsl:template>  
</xsl:stylesheet>";

XDocument xmlTree = new(
    new XElement("Parent",
        new XElement("Child1", "Child1 data"),
        new XElement("Child2", "Child2 data")
    )
);

XDocument newTree = new();
using (XmlWriter writer = newTree.CreateWriter())
{
    // Load the style sheet.  
    XslCompiledTransform xslt = new();
    xslt.Load(XmlReader.Create(new StringReader(xslMarkup)));

    // Execute the transform and output the results to a writer.  
    xslt.Transform(xmlTree.CreateNavigator(), writer);
}

Console.WriteLine(newTree);

Dieses Beispiel erzeugt die folgende Ausgabe:

XML
<Root>  
  <C1>Child1 data</C1>  
  <C2>Child2 data</C2>  
</Root>  

Hinweise

Sie können die XPathNavigator XML-Struktur nicht mithilfe der von dieser Methode zurückgegebenen XML-Struktur bearbeiten. Die CanEdit-Eigenschaft gibt false zurück.

Sie können keinen XPathNavigator XDocumentType Knoten erstellen. Dokumenttypen nehmen nicht an dem XPath-Datenmodell teil.

Namespacedeklarationen werden von links nach rechts gemeldet. Im Gegensatz dazu werden namespaces XmlDocument von rechts nach links gemeldet. Dies ist konformes Verhalten, da Namespacedeklarationen nicht im XPath-Datenmodell angeordnet sind.

Die Methode wird für Navigatoren, die von dieser Methode MoveToId zurückgegeben werden, nicht unterstützt.

Sie können diese Methode verwenden, um eine XSLT-Transformation auszuführen. Sie können eine XML-Struktur erstellen, eine aus der XML-Struktur erstellen, XPathNavigator ein neues Dokument erstellen und ein XmlWriter neues Dokument erstellen, das in das neue Dokument geschrieben wird. Anschließend können Sie die XSLT-Transformation aufrufen, die XPathNavigator Transformation übergeben und XmlWriter an die Transformation übergeben. Nach erfolgreichem Abschluss der Transformation wird die neue XML-Struktur mit den Ergebnissen der Transformation aufgefüllt.

Um eine XSLT-Transformation auszuführen, können Sie entweder eine oder eine XmlReader XPathNavigator. Die beiden Ansätze weisen unterschiedliche Leistungseigenschaften auf. Einige Transformationen werden schneller ausgeführt, wenn eine XmlReaderVerwendung verwendet wird, und andere werden schneller ausgeführt, wenn eine XPathNavigatorVerwendung verwendet wird. Wenn die Leistung ein Anliegen ist, empfehlen wir, mit jedem Ansatz zu experimentieren, um zu ermitteln, welche in Ihren Umständen besser funktionieren.

Gilt für

.NET 7 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

CreateNavigator(XNode, XmlNameTable)

Erstellt einen XPathNavigator für einen XNode. Die XmlNameTable ermöglicht eine effizientere Verarbeitung von XPath-Ausdrücken.

C#
public static System.Xml.XPath.XPathNavigator CreateNavigator (this System.Xml.Linq.XNode node, System.Xml.XmlNameTable? nameTable);
C#
public static System.Xml.XPath.XPathNavigator CreateNavigator (this System.Xml.Linq.XNode node, System.Xml.XmlNameTable nameTable);

Parameter

node
XNode

Ein XNode, der eine XPath-Abfrage verarbeiten kann.

nameTable
XmlNameTable

Eine XmlNameTable, die vom XPathNavigator verwendet werden soll.

Gibt zurück

XPathNavigator

Ein XPathNavigator, der XPath-Abfragen verarbeiten kann.

Hinweise

Sie können die XPathNavigator XML-Struktur nicht mithilfe der von dieser Methode zurückgegebenen XML-Struktur bearbeiten. Die CanEdit-Eigenschaft gibt false zurück.

Sie können keinen XPathNavigator XDocumentType Knoten erstellen. Dokumenttypen nehmen nicht an dem XPath-Datenmodell teil.

Namespacedeklarationen werden von links nach rechts gemeldet. Im Gegensatz dazu werden namespaces XmlDocument von rechts nach links gemeldet. Dies ist konformes Verhalten, da Namespacedeklarationen nicht im XPath-Datenmodell angeordnet sind.

Die Methode wird für Navigatoren, die von dieser Methode MoveToId zurückgegeben werden, nicht unterstützt.

Wenn Sie eine XmlNameTable mit dieser Methode zum Erstellen verwenden, erhalten Sie bei der XPathNavigatorAuswertung von XPath-Ausdrücken eine bessere Leistung.

Gilt für

.NET 7 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1