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

정의

XPathNavigator에 대해 XNode를 만듭니다.Creates an XPathNavigator for an XNode.

오버로드

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

XPathNavigator에 대해 XNode를 만듭니다.Creates an XPathNavigator for an XNode.

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

XPathNavigator에 대해 XNode를 만듭니다.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.

만들 수 없습니다는 XPathNavigator 에 대 한는 XDocumentType 노드.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. 그런 다음 XPathNavigatorXmlWriter를 변환에 전달하여 XSLT 변환을 호출할 수 있습니다.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. 두 가지 방법에는 다양 한 성능 특징이 있습니다.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)

XPathNavigator에 대해 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

매개 변수

node
XNode XNode XNode XNode

XPath 쿼리를 처리할 수 있는 XNode입니다.An XNode that can process XPath queries.

반환

XPath 쿼리를 처리할 수 있는 XPathNavigator입니다.An 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.

만들 수 없습니다는 XPathNavigator 에 대 한는 XDocumentType 노드.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. 두 가지 방법에는 다양 한 성능 특징이 있습니다.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)

XPathNavigator에 대해 XNode를 만듭니다.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 쿼리를 처리할 수 있는 XNode입니다.An XNode that can process an XPath query.

반환

XPath 쿼리를 처리할 수 있는 XPathNavigator입니다.An 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.

만들 수 없습니다는 XPathNavigator 에 대 한는 XDocumentType 노드.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 만들려면이 메서드를 사용 하 여는 XPathNavigator, XPath 식을 평가할 때 성능 향상을 받습니다.If you use an XmlNameTable with this method to create the XPathNavigator, you will get better performance when evaluating XPath expressions.

적용 대상