다음을 통해 공유


Extensions.CreateNavigator 메서드

정의

XPathNavigator에 대해 XNode를 만듭니다.

오버로드

CreateNavigator(XNode)

XPathNavigator에 대해 XNode를 만듭니다.

CreateNavigator(XNode, XmlNameTable)

XPathNavigator에 대해 XNode를 만듭니다. XmlNameTable을 사용하면 보다 효율적으로 XPath 식을 처리할 수 있습니다.

설명

이 메서드에서 반환된 XML 트리를 사용하여 XML 트리를 XPathNavigator 편집할 수 없습니다. CanEdit 속성이 false를 반환합니다.

노드에 XPathNavigator 대해 XDocumentType 만들 수 없습니다. 문서 형식은 XPath 데이터 모델에 참여하지 않습니다.

네임스페이스 선언은 왼쪽에서 오른쪽으로 보고됩니다. 반면에 네 XmlDocument임스페이스는 오른쪽에서 왼쪽으로 보고됩니다. 네임스페이스 선언이 XPath 데이터 모델에서 정렬되지 않기 때문에 이는 규칙적인 동작입니다.

이 메서드 MoveToId 에서 반환되는 탐색기에는 이 메서드가 지원되지 않습니다.

이 메서드를 사용하여 XSLT 변환을 수행할 수 있습니다. XML 트리를 만들고, XML 트리에서 만들고 XPathNavigator , 새 문서를 만들고, 새 문서에 쓸 문서를 만들 XmlWriter 수 있습니다. 그런 다음 XPathNavigatorXmlWriter를 변환에 전달하여 XSLT 변환을 호출할 수 있습니다. 변환이 성공적으로 완료된 후 새 XML 트리가 변환의 결과로 채워집니다.

XSLT 변환을 수행하려면 하나 XmlReader 또는 XPathNavigator을 사용할 수 있습니다. 두 가지 방법은 성능 특성이 다릅니다. 일부 변환은 사용 XmlReader시 더 빠르게 실행되고 다른 변환은 .를 사용할 XPathNavigator때 더 빠르게 실행됩니다. 성능이 중요한 경우 각 접근 방식을 실험하여 사용자 환경에서 더 나은 성능을 발휘할 방법을 결정하는 것이 좋습니다.

CreateNavigator(XNode)

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

XPath 쿼리를 처리할 수 있는 XNode입니다.

반환

XPathNavigator

XPath 쿼리를 처리할 수 있는 XPathNavigator입니다.

예제

using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using System.Xml.Xsl;

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(
    new XElement("Parent",
        new XElement("Child1", "Child1 data"),
        new XElement("Child2", "Child2 data")
    )
);

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

이 예제는 다음과 같은 출력을 생성합니다.

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

설명

이 메서드에서 반환하는 XML 트리를 사용하여 XML 트리를 XPathNavigator 편집할 수 없습니다. CanEdit 속성이 false를 반환합니다.

노드에 XPathNavigator 대해 XDocumentType 만들 수 없습니다. 문서 형식은 XPath 데이터 모델에 참여하지 않습니다.

네임스페이스 선언은 왼쪽에서 오른쪽으로 보고됩니다. 반면 네임스페이스의 경우 XmlDocument 오른쪽에서 왼쪽으로 보고됩니다. 네임스페이스 선언이 XPath 데이터 모델에서 정렬되지 않기 때문에 이는 규칙적인 동작입니다.

이 메서드 MoveToId 에서 반환되는 탐색기에는 이 메서드가 지원되지 않습니다.

이 메서드를 사용하여 XSLT 변환을 수행할 수 있습니다. XML 트리를 만들고, XML 트리에서 만들고 XPathNavigator , 새 문서를 만들고, 새 문서에 쓸 문서를 만들 XmlWriter 수 있습니다. 그런 다음 XSLT 변환을 호출하여 변환에 XPathNavigator XmlWriter 전달할 수 있습니다. 변환이 성공적으로 완료된 후 새 XML 트리가 변환의 결과로 채워집니다.

XSLT 변환을 수행하려면 하나 XmlReader 또는 XPathNavigator을 사용할 수 있습니다. 두 가지 방법은 성능 특성이 다릅니다. 일부 변환은 사용 XmlReader시 더 빠르게 실행되고 다른 변환은 .를 사용할 XPathNavigator때 더 빠르게 실행됩니다. 성능이 중요한 경우 각 접근 방식을 실험하여 사용자 환경에서 더 나은 성능을 발휘할 방법을 결정하는 것이 좋습니다.

적용 대상

CreateNavigator(XNode, XmlNameTable)

XPathNavigator에 대해 XNode를 만듭니다. XmlNameTable을 사용하면 보다 효율적으로 XPath 식을 처리할 수 있습니다.

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

매개 변수

node
XNode

XPath 쿼리를 처리할 수 있는 XNode입니다.

nameTable
XmlNameTable

XmlNameTable에 사용할 XPathNavigator입니다.

반환

XPathNavigator

XPath 쿼리를 처리할 수 있는 XPathNavigator입니다.

설명

이 메서드에서 반환된 XML 트리를 XPathNavigator 사용하여 편집할 수 없습니다. CanEdit 속성이 false를 반환합니다.

노드에 XPathNavigator 대해 XDocumentType 만들 수 없습니다. 문서 형식은 XPath 데이터 모델에 참여하지 않습니다.

네임스페이스 선언은 왼쪽에서 오른쪽으로 보고됩니다. 반면 네임스페이스의 경우 XmlDocument 오른쪽에서 왼쪽으로 보고됩니다. 네임스페이스 선언이 XPath 데이터 모델에서 정렬되지 않기 때문에 이는 규칙적인 동작입니다.

이 메서드 MoveToId 에서 반환되는 탐색기에는 이 메서드가 지원되지 않습니다.

이 메서드를 XmlNameTable 사용하여 만들 XPathNavigator면 XPath 식을 평가할 때 성능이 향상됩니다.

적용 대상