Extensions.CreateNavigator Método

Definição

Cria um XPathNavigator para um XNode.Creates an XPathNavigator for an XNode.

Sobrecargas

CreateNavigator(XNode)

Cria um XPathNavigator para um XNode.Creates an XPathNavigator for an XNode.

CreateNavigator(XNode, XmlNameTable)

Cria um XPathNavigator para um XNode.Creates an XPathNavigator for an XNode. O XmlNameTable habilita o processamento mais eficiente de expressão XPath.The XmlNameTable enables more efficient XPath expression processing.

Comentários

Você não pode editar a árvore XML usando o XPathNavigator que é retornado por este método.You cannot edit the XML tree by using the XPathNavigator that is returned by this method. A propriedade CanEdit retorna false.The CanEdit property returns false.

Não é possível criar um XPathNavigator para um XDocumentType nó.You cannot create an XPathNavigator for a XDocumentType node. Os tipos de documento não participam do modelo de dados XPath.Document types do not participate in the XPath data model.

As declarações de namespace são relatadas da esquerda para a direita.Namespace declarations are reported from left to right. Por outro lado, os XmlDocument namespaces são relatados da direita para a esquerda.In contrast, for XmlDocument namespaces are reported from right to left. Esse comportamento é compatível porque as declarações de namespace não são ordenadas no modelo de dados XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

MoveToIdNão há suporte para o método em navegadores que são retornados por esse método.The method MoveToId is not supported for navigators that are returned by this method.

Você pode usar esse método para executar uma transformação XSLT.You can use this method to perform an XSLT transformation. Você pode criar uma árvore XML, criar uma XPathNavigator na árvore XML, criar um novo documento e criar um XmlWriter que será gravado no novo 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. Em seguida, você pode chamar a transformação XSLT, passando XPathNavigator e XmlWriter para a transformação.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transformation. Depois que a transformação for concluída com êxito, a nova árvore XML será preenchida com os resultados da transformação.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

Para executar uma transformação XSLT, você pode usar um XmlReader ou um XPathNavigator .To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. As duas abordagens têm características de desempenho diferentes.The two approaches have different performance characteristics. Algumas transformações serão executadas mais rapidamente ao usar um XmlReader , e outras serão executadas mais rapidamente ao usar um XPathNavigator .Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Se o desempenho for uma preocupação, recomendamos que você experimente cada abordagem para determinar qual será o melhor desempenho em suas circunstâncias.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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

CreateNavigator(XNode)

Cria um XPathNavigator para um 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

Um XNode que pode processar consultas XPath.An XNode that can process XPath queries.

Retornos

XPathNavigator

Um XPathNavigator que pode processar consultas XPath.An XPathNavigator that can process XPath queries.

Exemplos

                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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

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

Comentários

Você não pode editar a árvore XML usando o XPathNavigator que é retornado por este método.You cannot edit the XML tree by using the XPathNavigator that is returned by this method. A propriedade CanEdit retorna false.The CanEdit property returns false.

Não é possível criar um XPathNavigator para um XDocumentType nó.You cannot create an XPathNavigator for a XDocumentType node. Os tipos de documento não participam do modelo de dados XPath.Document types do not participate in the XPath data model.

As declarações de namespace são relatadas da esquerda para a direita.Namespace declarations are reported from left to right. Por outro lado, os XmlDocument namespaces são relatados da direita para a esquerda.In contrast, for XmlDocument namespaces are reported from right to left. Esse comportamento é compatível porque as declarações de namespace não são ordenadas no modelo de dados XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

MoveToIdNão há suporte para o método em navegadores que são retornados por esse método.The method MoveToId is not supported for navigators that are returned by this method.

Você pode usar esse método para executar uma transformação XSLT.You can use this method to perform an XSLT transformation. Você pode criar uma árvore XML, criar uma XPathNavigator na árvore XML, criar um novo documento e criar um XmlWriter que será gravado no novo 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. Em seguida, você pode invocar a transformação XSLT, passando o XPathNavigator e XmlWriter para a transformação.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transform. Depois que a transformação for concluída com êxito, a nova árvore XML será preenchida com os resultados da transformação.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

Para executar uma transformação XSLT, você pode usar um XmlReader ou um XPathNavigator .To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. As duas abordagens têm características de desempenho diferentes.The two approaches have different performance characteristics. Algumas transformações serão executadas mais rapidamente ao usar um XmlReader , e outras serão executadas mais rapidamente ao usar um XPathNavigator .Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Se o desempenho for uma preocupação, recomendamos que você experimente cada abordagem para determinar qual será o melhor desempenho em suas circunstâncias.If performance is a concern, we recommend that you experiment with each approach to determine which will perform better in your circumstances.

Aplica-se a

CreateNavigator(XNode, XmlNameTable)

Cria um XPathNavigator para um XNode.Creates an XPathNavigator for an XNode. O XmlNameTable habilita o processamento mais eficiente de expressão 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);
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

Um XNode que pode processar uma consulta XPath.An XNode that can process an XPath query.

nameTable
XmlNameTable

Um XmlNameTable a ser usado por XPathNavigator.A XmlNameTable to be used by XPathNavigator.

Retornos

XPathNavigator

Um XPathNavigator que pode processar consultas XPath.An XPathNavigator that can process XPath queries.

Comentários

Você não pode editar a árvore XML usando o XPathNavigator que é retornado por este método.You cannot edit the XML tree using the XPathNavigator that is returned by this method. A propriedade CanEdit retorna false.The CanEdit property returns false.

Não é possível criar um XPathNavigator para um XDocumentType nó.You cannot create an XPathNavigator for a XDocumentType node. Os tipos de documento não participam do modelo de dados XPath.Document types do not participate in the XPath data model.

As declarações de namespace são relatadas da esquerda para a direita.Namespace declarations are reported from left to right. Por outro lado, os XmlDocument namespaces são relatados da direita para a esquerda.In contrast, for XmlDocument namespaces are reported from right to left. Esse comportamento é compatível porque as declarações de namespace não são ordenadas no modelo de dados XPath.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

MoveToIdNão há suporte para o método em navegadores que são retornados por esse método.The method MoveToId is not supported for navigators that are returned by this method.

Se você usar um XmlNameTable com esse método para criar o XPathNavigator , terá um melhor desempenho ao avaliar expressões XPath.If you use an XmlNameTable with this method to create the XPathNavigator, you will get better performance when evaluating XPath expressions.

Aplica-se a