Extensions.CreateNavigator Yöntem

Tanım

Bir XPathNavigator için oluşturur XNode .Creates an XPathNavigator for an XNode.

Aşırı Yüklemeler

CreateNavigator(XNode)

Bir XPathNavigator için oluşturur XNode .Creates an XPathNavigator for an XNode.

CreateNavigator(XNode, XmlNameTable)

Bir XPathNavigator için oluşturur XNode .Creates an XPathNavigator for an XNode. XmlNameTableDaha verimli XPath ifadesi işlemesini sağlar.The XmlNameTable enables more efficient XPath expression processing.

Açıklamalar

Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını düzenleyemezsiniz XPathNavigator .You cannot edit the XML tree by using the XPathNavigator that is returned by this method. CanEditÖzelliği döndürür false .The CanEdit property returns false.

Düğüm için bir oluşturamazsınız XPathNavigator XDocumentType .You cannot create an XPathNavigator for a XDocumentType node. Belge türleri XPath veri modeline katılmaz.Document types do not participate in the XPath data model.

Ad alanı bildirimleri soldan sağa bildirilir.Namespace declarations are reported from left to right. Buna karşılık, XmlDocument ad alanları için sağdan sola rapor edilir.In contrast, for XmlDocument namespaces are reported from right to left. Bu, ad alanı bildirimleri XPath veri modelinde sıralanmadığı için uyumlu bir davranıştır.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

Yöntemi MoveToId Bu yöntem tarafından döndürülen gezinmeler için desteklenmiyor.The method MoveToId is not supported for navigators that are returned by this method.

XSLT dönüşümü gerçekleştirmek için bu yöntemi kullanabilirsiniz.You can use this method to perform an XSLT transformation. Bir XML ağacı oluşturabilir, XML ağacından oluşturabilir, XPathNavigator Yeni bir belge oluşturabilir ve XmlWriter yeni belgeye yazılacak bir oluşturabilirsiniz.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. Ardından, XSLT dönüşümünü çağırarak XPathNavigator ve XmlWriter dönüşümünü dönüştürebilirsiniz.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transformation. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüştürmenin sonuçlarıyla doldurulur.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

XSLT dönüşümü gerçekleştirmek için ya da XmlReader bir kullanabilirsiniz XPathNavigator .To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. İki yaklaşımdan farklı performans özellikleri vardır.The two approaches have different performance characteristics. Bazı dönüşümler bir kullanırken daha hızlı yürütülür XmlReader ve diğer bir kullanıldığında daha hızlı yürütülecektir XPathNavigator .Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Performans bir sorun oluşturacaksa, sizin şartlarınızın ne kadar iyi gerçekleştirileceğini belirleyen her yaklaşımla denemeler yapmanızı öneririz.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)  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

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

CreateNavigator(XNode)

Bir XPathNavigator için oluşturur 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

Parametreler

node
XNode

XNodeXPath sorgularını işleyebilirler.An XNode that can process XPath queries.

Döndürülenler

XPathNavigator

XPathNavigatorXPath sorgularını işleyebilirler.An XPathNavigator that can process XPath queries.

Örnekler

                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)  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

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

Açıklamalar

Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını düzenleyemezsiniz XPathNavigator .You cannot edit the XML tree by using the XPathNavigator that is returned by this method. CanEditÖzelliği döndürür false .The CanEdit property returns false.

Düğüm için bir oluşturamazsınız XPathNavigator XDocumentType .You cannot create an XPathNavigator for a XDocumentType node. Belge türleri XPath veri modeline katılmaz.Document types do not participate in the XPath data model.

Ad alanı bildirimleri soldan sağa bildirilir.Namespace declarations are reported from left to right. Buna karşılık, XmlDocument ad alanları için sağdan sola rapor edilir.In contrast, for XmlDocument namespaces are reported from right to left. Bu, ad alanı bildirimleri XPath veri modelinde sıralanmadığı için uyumlu bir davranıştır.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

Yöntemi MoveToId Bu yöntem tarafından döndürülen gezinmeler için desteklenmiyor.The method MoveToId is not supported for navigators that are returned by this method.

XSLT dönüşümü gerçekleştirmek için bu yöntemi kullanabilirsiniz.You can use this method to perform an XSLT transformation. Bir XML ağacı oluşturabilir, XML ağacından oluşturabilir, XPathNavigator Yeni bir belge oluşturabilir ve XmlWriter yeni belgeye yazılacak bir oluşturabilirsiniz.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. Ardından, XSLT dönüşümünü çağırarak XPathNavigator ve XmlWriter dönüşümünü dönüştürebilirsiniz.Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transform. Dönüştürme başarıyla tamamlandıktan sonra, yeni XML ağacı dönüştürmenin sonuçlarıyla doldurulur.After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

XSLT dönüşümü gerçekleştirmek için ya da XmlReader bir kullanabilirsiniz XPathNavigator .To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. İki yaklaşımdan farklı performans özellikleri vardır.The two approaches have different performance characteristics. Bazı dönüşümler bir kullanırken daha hızlı yürütülür XmlReader ve diğer bir kullanıldığında daha hızlı yürütülecektir XPathNavigator .Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. Performans bir sorun oluşturacaksa, sizin şartlarınızın ne kadar iyi gerçekleştirileceğini belirleyen her yaklaşımla denemeler yapmanızı öneririz.If performance is a concern, we recommend that you experiment with each approach to determine which will perform better in your circumstances.

Şunlara uygulanır

CreateNavigator(XNode, XmlNameTable)

Bir XPathNavigator için oluşturur XNode .Creates an XPathNavigator for an XNode. XmlNameTableDaha verimli XPath ifadesi işlemesini sağlar.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

Parametreler

node
XNode

Bir XNode XPath sorgusunu işleyebilirler.An XNode that can process an XPath query.

nameTable
XmlNameTable

XmlNameTableTarafından kullanılacak XPathNavigator .A XmlNameTable to be used by XPathNavigator.

Döndürülenler

XPathNavigator

XPathNavigatorXPath sorgularını işleyebilirler.An XPathNavigator that can process XPath queries.

Açıklamalar

Bu yöntem tarafından döndürülen öğesini kullanarak XML ağacını düzenleyemezsiniz XPathNavigator .You cannot edit the XML tree using the XPathNavigator that is returned by this method. CanEditÖzelliği döndürür false .The CanEdit property returns false.

Düğüm için bir oluşturamazsınız XPathNavigator XDocumentType .You cannot create an XPathNavigator for a XDocumentType node. Belge türleri XPath veri modeline katılmaz.Document types do not participate in the XPath data model.

Ad alanı bildirimleri soldan sağa bildirilir.Namespace declarations are reported from left to right. Buna karşılık, XmlDocument ad alanları için sağdan sola rapor edilir.In contrast, for XmlDocument namespaces are reported from right to left. Bu, ad alanı bildirimleri XPath veri modelinde sıralanmadığı için uyumlu bir davranıştır.This is conformant behavior because namespace declarations are not ordered in the XPath data model.

Yöntemi MoveToId Bu yöntem tarafından döndürülen gezinmeler için desteklenmiyor.The method MoveToId is not supported for navigators that are returned by this method.

XmlNameTableOluşturmak için bu yöntemle bir kullanıyorsanız XPathNavigator , XPath ifadelerini değerlendirirken daha iyi bir performans alacaksınız.If you use an XmlNameTable with this method to create the XPathNavigator, you will get better performance when evaluating XPath expressions.

Şunlara uygulanır