Extensions.CreateNavigator Extensions.CreateNavigator Extensions.CreateNavigator Extensions.CreateNavigator Method

定義

XPathNavigatorXNode を作成します。Creates an XPathNavigator for an XNode.

オーバーロード

CreateNavigator(XNode) CreateNavigator(XNode) CreateNavigator(XNode) CreateNavigator(XNode)

XPathNavigatorXNode を作成します。Creates an XPathNavigator for an XNode.

CreateNavigator(XNode, XmlNameTable) CreateNavigator(XNode, XmlNameTable) CreateNavigator(XNode, XmlNameTable) CreateNavigator(XNode, XmlNameTable)

XPathNavigatorXNode を作成します。Creates an XPathNavigator for an XNode. XmlNameTable を使用すると、XPath 式をより効率的に処理できます。The XmlNameTable enables more efficient XPath expression processing.

注釈

使用して XML ツリーを編集することはできません、XPathNavigatorこのメソッドによって返されます。You cannot edit the XML tree by using the XPathNavigator that is returned by this method. CanEdit プロパティは、false を返します。The CanEdit property returns false.

作成することはできません、XPathNavigatorXDocumentTypeノード。You cannot create an XPathNavigator for a XDocumentType node. ドキュメントの種類は、XPath データ モデルでは参加しません。Document types do not participate in the XPath data model.

Namespace 宣言は、左から右に報告されます。Namespace declarations are reported from left to right. これに対して、XmlDocument名前空間は、右から左に報告されます。In contrast, for XmlDocument namespaces are reported from right to left. これは、名前空間の宣言は、XPath データ モデルでは順序付けされていないために準拠する動作です。This is conformant behavior because namespace declarations are not ordered in the XPath data model.

メソッドMoveToIdこのメソッドによって返されるナビゲーターはサポートされていません。The method MoveToId is not supported for navigators that are returned by this method.

このメソッドを使用すると、XSLT 変換を実行します。You can use this method to perform an XSLT transformation. XML ツリーを作成、作成することができます、 XPathNavigator 、XML ツリーから、新しいドキュメントを作成し、作成、XmlWriterに新しいドキュメントに書き込みます。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. 次に、XSLT 変換を呼び出し、変換処理に XPathNavigator および XmlWriter を渡すことができます。Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transformation. 変換が正常に完了すると、新しい XML ツリーに変換結果が挿入されます。After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

XSLT 変換を実行する、いずれかを使用できる、XmlReaderまたはXPathNavigatorします。To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. 2 つの方法では、さまざまなパフォーマンス特性があります。The two approaches have different performance characteristics. 使用する場合、いくつかの変換は高速実行、XmlReaderを作成し、他のユーザーが高速化を使用する場合、XPathNavigatorします。Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. パフォーマンスを重視する場合は、デバイスが優れている機能、状況を判断するには、各アプローチを試すことをお勧めします。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)  

この例を実行すると、次の出力が生成されます。This example produces the following output:


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

CreateNavigator(XNode) CreateNavigator(XNode) CreateNavigator(XNode) CreateNavigator(XNode)

XPathNavigatorXNode を作成します。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

パラメーター

node
XNode XNode XNode XNode

XPath クエリを処理できる XNodeAn XNode that can process XPath queries.

戻り値

XPath クエリを処理できる XPathNavigatorAn XPathNavigator that can process XPath queries.


                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)  

この例を実行すると、次の出力が生成されます。This example produces the following output:


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

注釈

使用して XML ツリーを編集することはできません、XPathNavigatorこのメソッドによって返されます。You cannot edit the XML tree by using the XPathNavigator that is returned by this method. CanEdit プロパティは、false を返します。The CanEdit property returns false.

作成することはできません、XPathNavigatorXDocumentTypeノード。You cannot create an XPathNavigator for a XDocumentType node. ドキュメントの種類は、XPath データ モデルでは参加しません。Document types do not participate in the XPath data model.

Namespace 宣言は、左から右に報告されます。Namespace declarations are reported from left to right. これに対して、XmlDocument名前空間は、右から左に報告されます。In contrast, for XmlDocument namespaces are reported from right to left. これは、名前空間の宣言は、XPath データ モデルでは順序付けされていないために準拠する動作です。This is conformant behavior because namespace declarations are not ordered in the XPath data model.

メソッドMoveToIdこのメソッドによって返されるナビゲーターはサポートされていません。The method MoveToId is not supported for navigators that are returned by this method.

このメソッドを使用すると、XSLT 変換を実行します。You can use this method to perform an XSLT transformation. XML ツリーを作成、作成することができます、 XPathNavigator 、XML ツリーから、新しいドキュメントを作成し、作成、XmlWriterに新しいドキュメントに書き込みます。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. 渡す、XSLT 変換を呼び出すことができますし、XPathNavigatorXmlWriterに変換します。Then, you can invoke the XSLT transformation, passing the XPathNavigator and XmlWriter to the transform. 変換が正常に完了すると、新しい XML ツリーに変換結果が挿入されます。After the transformation successfully completes, the new XML tree is populated with the results of the transformation.

XSLT 変換を実行する、いずれかを使用できる、XmlReaderまたはXPathNavigatorします。To perform an XSLT transformation, you can use either an XmlReader or an XPathNavigator. 2 つの方法では、さまざまなパフォーマンス特性があります。The two approaches have different performance characteristics. 使用する場合、いくつかの変換は高速実行、XmlReaderを作成し、他のユーザーが高速化を使用する場合、XPathNavigatorします。Some transformations will execute faster when using an XmlReader, and others will execute faster when using a XPathNavigator. パフォーマンスを重視する場合は、デバイスが優れている機能、状況を判断するには、各アプローチを試すことをお勧めします。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) CreateNavigator(XNode, XmlNameTable) CreateNavigator(XNode, XmlNameTable) CreateNavigator(XNode, XmlNameTable)

XPathNavigatorXNode を作成します。Creates an XPathNavigator for an XNode. XmlNameTable を使用すると、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

パラメーター

node
XNode XNode XNode XNode

XPath クエリを処理できる XNodeAn XNode that can process an XPath query.

戻り値

XPath クエリを処理できる XPathNavigatorAn XPathNavigator that can process XPath queries.

注釈

使用して XML ツリーを編集することはできません、XPathNavigatorこのメソッドによって返されます。You cannot edit the XML tree using the XPathNavigator that is returned by this method. CanEdit プロパティは、false を返します。The CanEdit property returns false.

作成することはできません、XPathNavigatorXDocumentTypeノード。You cannot create an XPathNavigator for a XDocumentType node. ドキュメントの種類は、XPath データ モデルでは参加しません。Document types do not participate in the XPath data model.

Namespace 宣言は、左から右に報告されます。Namespace declarations are reported from left to right. これに対して、XmlDocument名前空間は、右から左に報告されます。In contrast, for XmlDocument namespaces are reported from right to left. これは、名前空間の宣言は、XPath データ モデルでは順序付けされていないために準拠する動作です。This is conformant behavior because namespace declarations are not ordered in the XPath data model.

メソッドMoveToIdこのメソッドによって返されるナビゲーターはサポートされていません。The method MoveToId is not supported for navigators that are returned by this method.

使用する場合、XmlNameTableを作成するには、このメソッドを使用して、 XPathNavigatorXPath 式を評価するときにパフォーマンスの向上が表示されます。If you use an XmlNameTable with this method to create the XPathNavigator, you will get better performance when evaluating XPath expressions.

適用対象