Extensions.CreateNavigator Método

Definición

Crea un objeto XPathNavigator para XNode.Creates an XPathNavigator for an XNode.

Sobrecargas

CreateNavigator(XNode)

Crea un objeto XPathNavigator para XNode.Creates an XPathNavigator for an XNode.

CreateNavigator(XNode, XmlNameTable)

Crea un objeto XPathNavigator para XNode.Creates an XPathNavigator for an XNode. XmlNameTable permite un procesamiento más eficaz de la expresión XPath.The XmlNameTable enables more efficient XPath expression processing.

Comentarios

No se puede modificar el árbol XML mediante el XPathNavigator devuelto por este método.You cannot edit the XML tree by using the XPathNavigator that is returned by this method. La propiedad CanEdit devuelve false.The CanEdit property returns false.

No se puede crear un XPathNavigator para un nodo de XDocumentType.You cannot create an XPathNavigator for a XDocumentType node. Los tipos de documentos no participan en el modelo de datos de XPath.Document types do not participate in the XPath data model.

Las declaraciones de espacio de nombres se muestran de izquierda a derecha.Namespace declarations are reported from left to right. Por el contrario, en el caso de los espacios de nombres XmlDocument se muestran de derecha a izquierda.In contrast, for XmlDocument namespaces are reported from right to left. Este comportamiento es compatible porque las declaraciones de espacio de nombres no se ordenan en el modelo de datos XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

El método MoveToId no se admite para los navegadores devueltos por este método.The method MoveToId is not supported for navigators that are returned by this method.

Puede utilizar este método para realizar una transformación XSLT.You can use this method to perform an XSLT transformation. Puede crear un árbol XML, crear un XPathNavigator desde el árbol XML, crear un nuevo documento y crear un XmlWriter que escribirá en el nuevo documento.You can create an XML tree, create an XPathNavigator from the XML tree, create a new document, and create a XmlWriter that will write into the new document. A continuación, puede invocar la transformación XSLT y pasar XPathNavigator y XmlWriter a la transformación.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transformation. Después de que se complete correctamente la transformación, se rellenará el nuevo árbol XML con los resultados de la transformación.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

Para realizar una transformación XSLT, puede utilizar un XmlReader o un XPathNavigator.To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. Los dos enfoques tienen diferentes características de rendimiento.The two approaches have different performance characteristics. Algunas transformaciones se ejecutarán más rápido cuando se usa un XmlReadery otras se ejecutarán más rápidamente cuando se use un XPathNavigator.Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Si el rendimiento es un problema, se recomienda experimentar con cada enfoque para determinar cuál funcionará mejor en sus circunstancias.If performance is a concern, we recommend that you experiment with each approach to determine which will perform better in your circumstances.

  
            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 XDocument(  
    new XElement("Parent",  
        new XElement("Child1", "Child1 data"),  
        new XElement("Child2", "Child2 data")  
    )  
);  
  
XDocument newTree = new XDocument();  
using (XmlWriter writer = newTree.CreateWriter()) {  
    // Load the style sheet.  
    XslCompiledTransform xslt = new XslCompiledTransform();  
    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)  

Este ejemplo produce el siguiente resultado:This example produces the following output:

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

CreateNavigator(XNode)

Crea un objeto XPathNavigator para XNode.Creates an XPathNavigator for an 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

Parámetros

node
XNode

XNode que puede procesar consultas XPath.An XNode that can process XPath queries.

Devoluciones

XPathNavigator que puede procesar consultas XPath.An XPathNavigator that can process XPath queries.

Ejemplos

  
                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 XDocument(  
    new XElement("Parent",  
        new XElement("Child1", "Child1 data"),  
        new XElement("Child2", "Child2 data")  
    )  
);  
  
XDocument newTree = new XDocument();  
using (XmlWriter writer = newTree.CreateWriter()) {  
    // Load the style sheet.  
    XslCompiledTransform xslt = new XslCompiledTransform();  
    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)  

Este ejemplo produce el siguiente resultado:This example produces the following output:

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

Comentarios

No se puede modificar el árbol XML mediante el XPathNavigator devuelto por este método.You cannot edit the XML tree by using the XPathNavigator that is returned by this method. La propiedad CanEdit devuelve false.The CanEdit property returns false.

No se puede crear un XPathNavigator para un nodo de XDocumentType.You cannot create an XPathNavigator for a XDocumentType node. Los tipos de documentos no participan en el modelo de datos de XPath.Document types do not participate in the XPath data model.

Las declaraciones de espacio de nombres se muestran de izquierda a derecha.Namespace declarations are reported from left to right. Por el contrario, en el caso de los espacios de nombres XmlDocument se muestran de derecha a izquierda.In contrast, for XmlDocument namespaces are reported from right to left. Este comportamiento es compatible porque las declaraciones de espacio de nombres no se ordenan en el modelo de datos XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

El método MoveToId no se admite para los navegadores devueltos por este método.The method MoveToId is not supported for navigators that are returned by this method.

Puede utilizar este método para realizar una transformación XSLT.You can use this method to perform an XSLT transformation. Puede crear un árbol XML, crear un XPathNavigator desde el árbol XML, crear un nuevo documento y crear un XmlWriter que escribirá en el nuevo documento.You can create an XML tree, create an XPathNavigator from the XML tree, create a new document, and create a XmlWriter that will write into the new document. A continuación, puede invocar la transformación XSLT, pasando el XPathNavigator y XmlWriter a la transformación.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transform. Después de que se complete correctamente la transformación, se rellenará el nuevo árbol XML con los resultados de la transformación.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

Para realizar una transformación XSLT, puede utilizar un XmlReader o un XPathNavigator.To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. Los dos enfoques tienen diferentes características de rendimiento.The two approaches have different performance characteristics. Algunas transformaciones se ejecutarán más rápido cuando se usa un XmlReadery otras se ejecutarán más rápidamente cuando se use un XPathNavigator.Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Si el rendimiento es un problema, se recomienda experimentar con cada enfoque para determinar cuál funcionará mejor en sus circunstancias.If performance is a concern, we recommend that you experiment with each approach to determine which will perform better in your circumstances.

CreateNavigator(XNode, XmlNameTable)

Crea un objeto XPathNavigator para XNode.Creates an XPathNavigator for an XNode. XmlNameTable permite un procesamiento más eficaz de la expresión XPath.The XmlNameTable enables more efficient XPath expression processing.

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);
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

Parámetros

node
XNode

XNode que procesa consultas XPath.An XNode that can process an XPath query.

nameTable
XmlNameTable

Objeto XmlNameTable que se va a utilizar en XPathNavigator.A XmlNameTable to be used by XPathNavigator.

Devoluciones

XPathNavigator que puede procesar consultas XPath.An XPathNavigator that can process XPath queries.

Comentarios

No se puede modificar el árbol XML mediante el XPathNavigator devuelto por este método.You cannot edit the XML tree using the XPathNavigator that is returned by this method. La propiedad CanEdit devuelve false.The CanEdit property returns false.

No se puede crear un XPathNavigator para un nodo de XDocumentType.You cannot create an XPathNavigator for a XDocumentType node. Los tipos de documentos no participan en el modelo de datos de XPath.Document types do not participate in the XPath data model.

Las declaraciones de espacio de nombres se muestran de izquierda a derecha.Namespace declarations are reported from left to right. Por el contrario, en el caso de los espacios de nombres XmlDocument se muestran de derecha a izquierda.In contrast, for XmlDocument namespaces are reported from right to left. Este comportamiento es compatible porque las declaraciones de espacio de nombres no se ordenan en el modelo de datos XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

El método MoveToId no se admite para los navegadores devueltos por este método.The method MoveToId is not supported for navigators that are returned by this method.

Si utiliza un XmlNameTable con este método para crear el XPathNavigator, obtendrá un mejor rendimiento al evaluar las expresiones XPath.If you use an XmlNameTable with this method to create the XPathNavigator, you will get better performance when evaluating XPath expressions.

Se aplica a