Extensions.CreateNavigator 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 수 있습니다. 그런 다음 XPathNavigator 및 XmlWriter를 변환에 전달하여 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
매개 변수
반환
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
매개 변수
- nameTable
- XmlNameTable
XmlNameTable에 사용할 XPathNavigator입니다.
반환
XPath 쿼리를 처리할 수 있는 XPathNavigator입니다.
설명
이 메서드에서 반환된 XML 트리를 XPathNavigator 사용하여 편집할 수 없습니다. CanEdit 속성이 false
를 반환합니다.
노드에 XPathNavigator 대해 XDocumentType 만들 수 없습니다. 문서 형식은 XPath 데이터 모델에 참여하지 않습니다.
네임스페이스 선언은 왼쪽에서 오른쪽으로 보고됩니다. 반면 네임스페이스의 경우 XmlDocument 오른쪽에서 왼쪽으로 보고됩니다. 네임스페이스 선언이 XPath 데이터 모델에서 정렬되지 않기 때문에 이는 규칙적인 동작입니다.
이 메서드 MoveToId 에서 반환되는 탐색기에는 이 메서드가 지원되지 않습니다.
이 메서드를 XmlNameTable 사용하여 만들 XPathNavigator면 XPath 식을 평가할 때 성능이 향상됩니다.