Partager via


Extensions.CreateNavigator Méthode

Définition

Crée un XPathNavigator pour un XNode.

Surcharges

Nom Description
CreateNavigator(XNode)

Crée un XPathNavigator pour un XNode.

CreateNavigator(XNode, XmlNameTable)

Crée un XPathNavigator pour un XNode. Le XmlNameTable traitement des expressions XPath est plus efficace.

Remarques

Vous ne pouvez pas modifier l’arborescence XML à l’aide de celle XPathNavigator retournée par cette méthode. La CanEdit propriété retourne false.

Vous ne pouvez pas créer un XPathNavigatorXDocumentType nœud. Les types de documents ne participent pas au modèle de données XPath.

Les déclarations d’espace de noms sont signalées de gauche à droite. En revanche, pour , les XmlDocumentespaces de noms sont signalés de droite à gauche. Il s’agit d’un comportement conforme, car les déclarations d’espace de noms ne sont pas ordonnées dans le modèle de données XPath.

La méthode MoveToId n’est pas prise en charge pour les navigateurs retournés par cette méthode.

Vous pouvez utiliser cette méthode pour effectuer une transformation XSLT. Vous pouvez créer une arborescence XML, créer une XPathNavigator arborescence XML à partir de l’arborescence XML, créer un document et créer un XmlWriter document qui écrirea dans le nouveau document. Ensuite, vous pouvez appeler la transformation XSLT, passer la XPathNavigator transformation et XmlWriter la transformer. Une fois la transformation terminée, la nouvelle arborescence XML est remplie avec les résultats de la transformation.

Pour effectuer une transformation XSLT, vous pouvez utiliser un XmlReader ou un XPathNavigator. Les deux approches présentent des caractéristiques de performances différentes. Certaines transformations s’exécutent plus rapidement lors de l’utilisation d’un XmlReader, et d’autres s’exécutent plus rapidement lors de l’utilisation d’un XPathNavigator. Si les performances sont un problème, nous vous recommandons d’expérimenter chaque approche pour déterminer qui fonctionnera mieux dans vos circonstances.

CreateNavigator(XNode)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Crée un XPathNavigator pour un XNode.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Xml::XPath::XPathNavigator ^ CreateNavigator(System::Xml::Linq::XNode ^ node);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node);
static member CreateNavigator : System.Xml.Linq.XNode -> System.Xml.XPath.XPathNavigator
<Extension()>
Public Function CreateNavigator (node As XNode) As XPathNavigator

Paramètres

node
XNode

Qui XNode peut traiter des requêtes XPath.

Retours

Qui XPathNavigator peut traiter des requêtes XPath.

Exemples

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);
Dim xslMarkup As XDocument = _
    <?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>

Dim xmlTree As XDocument = _
    <?xml version='1.0'?>
    <Parent>
        <Child1>Child1 data</Child1>
        <Child2>Child2 data</Child2>
    </Parent>

Dim newTree As XDocument = New XDocument()

Using writer As XmlWriter = newTree.CreateWriter()
    ' Load the style sheet.
    Dim xslt As XslCompiledTransform = _
        New XslCompiledTransform()
    xslt.Load(xslMarkup.CreateReader())

    ' Execute the transform and output the results to a writer.
    xslt.Transform(xmlTree.CreateNavigator(), writer)
End Using

Console.WriteLine(newTree)

Cet exemple produit la sortie suivante :

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

Remarques

Vous ne pouvez pas modifier l’arborescence XML à l’aide de celle XPathNavigator retournée par cette méthode. La CanEdit propriété retourne false.

Vous ne pouvez pas créer un XPathNavigatorXDocumentType nœud. Les types de documents ne participent pas au modèle de données XPath.

Les déclarations d’espace de noms sont signalées de gauche à droite. En revanche, pour XmlDocument les espaces de noms, les espaces de noms sont signalés de droite à gauche. Il s’agit d’un comportement conforme, car les déclarations d’espace de noms ne sont pas ordonnées dans le modèle de données XPath.

La méthode MoveToId n’est pas prise en charge pour les navigateurs retournés par cette méthode.

Vous pouvez utiliser cette méthode pour effectuer une transformation XSLT. Vous pouvez créer une arborescence XML, créer une XPathNavigator arborescence XML à partir de l’arborescence XML, créer un document et créer un XmlWriter document qui écrirea dans le nouveau document. Ensuite, vous pouvez appeler la transformation XSLT, passer la XPathNavigator transformation et XmlWriter la transformer. Une fois la transformation terminée, la nouvelle arborescence XML est remplie avec les résultats de la transformation.

Pour effectuer une transformation XSLT, vous pouvez utiliser un XmlReader ou un XPathNavigator. Les deux approches présentent des caractéristiques de performances différentes. Certaines transformations s’exécutent plus rapidement lors de l’utilisation d’un XmlReader, et d’autres s’exécutent plus rapidement lors de l’utilisation d’un XPathNavigator. Si les performances sont un problème, nous vous recommandons d’expérimenter chaque approche pour déterminer qui fonctionnera mieux dans vos circonstances.

S’applique à

CreateNavigator(XNode, XmlNameTable)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Crée un XPathNavigator pour un XNode. Le XmlNameTable traitement des expressions XPath est plus efficace.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Xml::XPath::XPathNavigator ^ CreateNavigator(System::Xml::Linq::XNode ^ node, System::Xml::XmlNameTable ^ nameTable);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node, System.Xml.XmlNameTable? nameTable);
public static System.Xml.XPath.XPathNavigator CreateNavigator(this System.Xml.Linq.XNode node, System.Xml.XmlNameTable nameTable);
static member CreateNavigator : System.Xml.Linq.XNode * System.Xml.XmlNameTable -> System.Xml.XPath.XPathNavigator
<Extension()>
Public Function CreateNavigator (node As XNode, nameTable As XmlNameTable) As XPathNavigator

Paramètres

node
XNode

Qui XNode peut traiter une requête XPath.

nameTable
XmlNameTable

A XmlNameTable à utiliser par XPathNavigator.

Retours

Qui XPathNavigator peut traiter des requêtes XPath.

Remarques

Vous ne pouvez pas modifier l’arborescence XML à l’aide de celle XPathNavigator retournée par cette méthode. La CanEdit propriété retourne false.

Vous ne pouvez pas créer un XPathNavigatorXDocumentType nœud. Les types de documents ne participent pas au modèle de données XPath.

Les déclarations d’espace de noms sont signalées de gauche à droite. En revanche, pour XmlDocument les espaces de noms, les espaces de noms sont signalés de droite à gauche. Il s’agit d’un comportement conforme, car les déclarations d’espace de noms ne sont pas ordonnées dans le modèle de données XPath.

La méthode MoveToId n’est pas prise en charge pour les navigateurs retournés par cette méthode.

Si vous utilisez une XmlNameTable méthode avec cette méthode pour créer le XPathNavigator, vous obtiendrez de meilleures performances lors de l’évaluation des expressions XPath.

S’applique à