XslCompiledTransform 클래스에 대한 입력
Transform 메서드는 소스 문서에 대한 세 가지 입력 형식을 허용합니다. 즉, IXPathNavigable 인터페이스를 구현하는 개체, 소스 문서를 읽는 XmlReader 개체 또는 문자열 URI를 허용합니다.
![]() |
---|
기본적으로 XslCompiledTransform 클래스는 공백을 유지합니다.이러한 점은 W3C XSLT 1.0 권장 사항의 3.4단원(3.4단원, http://www.w3.org/TR/xslt.html#strip)과 일치합니다. |
IXPathNavigable 인터페이스
IXPathNavigable 인터페이스는 XmlNode 및 XPathDocument 클래스에서 구현됩니다. 이 클래스는 XML 데이터의 메모리 내 캐시를 나타냅니다.
XmlNode 클래스는 W3C DOM(문서 개체 모델)을 기반으로 하며 편집 기능이 있습니다.
XPathDocument 클래스는 XPath 데이터 모델을 기반으로 하는 읽기 전용 데이터 저장소입니다. XPathDocument는 XSLT 처리에 권장되는 클래스입니다. 이 클래스는 XmlNode 클래스와 비교하여 속도가 더 빠릅니다.
![]() |
---|
변환은 문서 전체에 적용됩니다.즉, 문서 루트 노드 이외의 노드에 전달해도 변환 프로세스에서 로드된 문서의 모든 노드에 액세스할 수 있습니다.노드 조각을 변환하려면 노드 조각만 포함하는 개체를 만들고 이 개체를 Transform 메서드에 전달해야 합니다.자세한 내용은 방법: 노드 조각 변환을 참조하십시오. |
다음 예제에서는 XslCompiledTransform.Transform 메서드를 통해 transform.xsl 스타일시트를 사용하여 books.xml 파일을 books.html 파일로 변환합니다. books.xml 및 transform.xsl 파일은 방법: 어셈블리를 사용하여 XSLT 변환 수행 항목에 있습니다.
' Open books.xml as an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
'Execute the transformation.
transform.Transform(doc, writer)
// Open books.xml as an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(doc, writer);
XmlReader 개체
Transform 메서드는 모든 자식을 통해 XmlReader의 현재 노드로부터 로드합니다. 그러면 문서의 일부를 컨텍스트 문서로 사용할 수 있습니다. Transform 메서드가 반환된 후 XmlReader가 컨텍스트 문서 끝 뒤의 다음 노드에 배치됩니다. 문서 끝에 도달하면 XmlReader가 EOF(파일 끝)에 배치됩니다.
다음 예제에서는 XslCompiledTransform.Transform 메서드를 통해 transform.xsl 스타일시트를 사용하여 books.xml 파일을 books.html 파일로 변환합니다. books.xml 및 transform.xsl 파일은 방법: 어셈블리를 사용하여 XSLT 변환 수행 항목에 있습니다.
'Create a reader to read books.xml
Dim reader As XmlReader = XmlReader.Create("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform(reader, writer)
// Create a reader to read books.xml
XmlReader reader = XmlReader.Create("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(reader, writer);
문자열 URI
소스 문서 URI를 XSLT 입력으로 지정할 수도 있습니다. XmlResolver를 사용하여 URI를 확인할 수 있습니다. 사용할 XmlResolver를 Transform 메서드에 전달하여 지정할 수 있습니다. XmlResolver를 지정하지 않으면 Transform 메서드는 자격 증명 없이 기본 XmlUrlResolver를 사용합니다.
다음 예제에서는 XslCompiledTransform.Transform 메서드를 통해 transform.xsl 스타일시트를 사용하여 books.xml 파일을 books.html 파일로 변환합니다. books.xml 및 transform.xsl 파일은 방법: 어셈블리를 사용하여 XSLT 변환 수행 항목에 있습니다.
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform("books.xml", "books.html")
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform("books.xml", "books.html");
자세한 내용은 XSLT 처리 중 외부 리소스 확인을 참조하십시오.