방법: 파이프라인 .NET 응용 프로그램에서 XSLT 변환을

기술 자료 번역 기술 자료 번역
기술 자료: 320847 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 .NET 응용 프로그램에서 XSLT (XSL 변환) 변환 파이프라인 방법을 보여 줍니다. 용어 "XSLT 변환 컨텍스트에서 파이프라인과" 기준 데이터 원본 확장 태그 언어 (XML) 문서의 증분 최종 필요한 출력을 생성하기 위해 두 개 이상의 XSLT 스타일시트 시퀀스로 변환됩니다 프로세스입니다. 프로세스 동안 최종 변환 방법을 통해 단계 다음 단계로 모든 입력을 원하는 출력을 생성하는 변환 파이프라인 각 중간 단계에서 생성된 출력이 사용됩니다.

System.IO 네임스페이스의 System.Xml.Xsl, System.Xml.XPath, .NET Framework 클래스는 프로그래밍 방식으로 .NET 응용 프로그램에서 XSLT 변환을 파이프라인 사용할 수 있습니다. 이 문서의 다음 절에서는 구현하고 ASP.NET 응용 프로그램에서 XSLT 변환을 파이프라인과 프로세스를 검사하는 데 도움이 되는 지침을 제공합니다. 일러스트레이션된 개념 또한 적용된 및 수 다른 유형의 XSLT 변환을 파이프라인 할 .NET 응용 프로그램에서 사용되는.

만들기 및 샘플 ASP.NET 응용 프로그램 설치

  1. 사용할 Visual Studio 새 Microsoft Visual Basic .NET ASP.NET 웹 응용 프로그램 프로젝트를 만들려면 .NET "XSLTPipelineDemo" (인용 부호 없이) 이라는.
  2. 다음 코드를 사용하여 만들고 XML 문서의 프로젝트에 "Employees.xml" (인용 부호 제외) 이라는 추가:
    <?xml version='1.0'?>
    <employees>
      <employee>
        <employeeId>1</employeeId>
        <name>
          <given>Nancy</given>
          <family>Davolio</family>
        </name>
      </employee>
      <employee>
        <employeeId>2</employeeId>
        <name>
          <given>Andrew</given>
          <family>Fuller</family>
        </name>
      </employee>
      <employee>
        <employeeId>3</employeeId>
        <name>
          <given>Janet</given>
          <family>Leverling</family>
        </name>
      </employee>  
    </employees>
    					
  3. 다음 코드를 사용하여 만들고 "sortEmployees.xslt" (인용 부호 제외) 프로젝트에 호출한 XSLT 스타일시트를 추가합니다. 이 스타일시트 Employees.xml XML 문서에서 데이터를 정렬하려면 XSLT 코드를 포함하는 (패밀리 이름 [직원, 이름 및 패밀리] 내림차순으로 요소). 이 스타일시트에 적용할 때 생성되는 출력 원본 XML 데이터 정렬된 버전입니다:
    <?xml version='1.0'?>
    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
    <xsl:param name="sortColumn" select="'family'"/>
    <xsl:param name="sortOrder" select="'descending'"/>
    
    
    <xsl:template match="employees">
       <employees>
    
       <xsl:apply-templates select="employee/name">  
           <xsl:sort select="./*[local-name() = $sortColumn]" order="{$sortOrder}"/>            
       </xsl:apply-templates>  
    
       </employees>
    </xsl:template> 
    
    <xsl:template match="employee/name">
      <employee>
    	  <xsl:copy-of select="parent::node()/*"/>
      </employee>  
    </xsl:template> 
    
    </xsl:stylesheet>
    					
  4. 다음 코드를 사용하여 만들고 프로젝트에 "EmployeesHTMLTable.xslt" (인용 부호 제외) 라는 XSLT 스타일시트를 추가합니다. 이 스타일시트 하이퍼텍스트 HTML) 테이블 소스 Employees.xml XML 문서 또는 Employees.xml XML 문서에 sortEmployees.xsl XSLT 스타일시트를 적용할 때 생성되는 정렬된 XML이 포함된) 직원 XML 데이터를 변환하는 XSLT 코드를 포함하는:
    <?xml version='1.0'?>
    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
    <xsl:template match="employees">
    	<HTML>
    	<BODY>
    	<TABLE BORDER="1">
    	<TR>
    	  <TH>Employee ID</TH>
    	  <TH>Employee Name</TH>
    	</TR>
    
    	<xsl:for-each select="employee">
    		<TR>
      		  <TD>
    		     <xsl:value-of select="employeeId"/>
    		  </TD>
    		  <TD>
    		     <xsl:value-of select="name/family"/>, <xsl:value-of select="name/given"/>
    		  </TD>
    		</TR>
    	</xsl:for-each>
    
    	</TABLE>
    	</BODY>
    	</HTML>   
    </xsl:template> 
    
    </xsl:stylesheet>
    
    					
  5. Employees.xml 파일을 모두 서로 독립적으로 XSLT 스타일시트 적용할 수 있습니다. XML 원본 HTML 테이블 표현을 생성합니다 employeesHTMLTable.xsl 적용하는 동안 sortEmployees.xsl 적용 Employees.xml 파일의 데이터를 정렬합니다. 이러한 두 XSLT 변환을 파이프라인 패밀리 이름을 기준으로 내림차순으로 정렬된 데이터가 HTML 테이블 표현을 얻으려면 먼저 sortEmployees.xsl Employees.xml 파일에 적용 및 첫 번째 변환에 의해 생성된 출력을 employeesHTMLTable.xsl 적용합니다.
  6. 앞에서 설명한 파이프라인과 구현하려면 WebForm1.aspxPage_Load 이벤트 프로시저에 다음 코드를 붙여 넣습니다.
    'Load the source XML document (Employees.xml) into an XPathDocument object.
    
    Dim xmlDoc As New System.Xml.XPath.XPathDocument(Server.MapPath("employees.xml"))
    
    'Load the first stylesheet (sortEmployees.xslt) that sorts the data in employees.xml
    'into an XslTransform object.
    
    Dim xslt As New System.Xml.Xsl.XslTransform()
    xslt.Load(Server.MapPath("sortEmployees.xslt"))
    
    'Execute the first transformation and write the interim output (the sorted XML)
    'to a MemoryStream object. Using an in memory stream (as opposed to a FileStream object) 
    'to store the interim output generated by the first transformation is a better option from  
    'a performance standpoint as it avoids unnecessary disk I/O.
    
    Dim memStream As New System.IO.MemoryStream()
    xslt.Transform(xmlDoc, Nothing, memStream)
    
    'Reset the MemoryStream internal pointer to point to the 
    'beginning of the stream. This is required for the following line of 
    'code to be able to read the data from the memory stream.
    
    memStream.Position = 0
    
    'Load the interim sorted XML output in an XPathDocument object. 
    'Notice that a second XPathDocument object is created to do this. 'The reason for this is that the XPathDocument class does not implement a Load 'method (like the System.Xml.XmlDocument class) that can be used to re-load new XML data into an existing 
    'object instance. While a single XmlDocument object could have been used to execute the two pipelined 'transformations in this sample, it has not been chosen because the XPathDocument is highly optimized for XPath query 
    'execution and XSLT transformations. It is the recommended interface to use when programatically executing 
    'XSLT transformations in .NET applications.
    
    Dim interimDoc As New System.Xml.XPath.XPathDocument(memStream)
    
    'Load the second stylesheet(employeesHTMLTable.xslt)that transforms the sorted data to an HTML table
    'into the XslTransform object.
    
    xslt.Load(Server.MapPath("employeesHTMLTable.xslt"))
    
    'Execute the second transformation and stream the output directly to the 
    'ASP.Net Response object's OutputStream to display the results in the client browser.
    
    xslt.Transform(interimDoc, Nothing, Response.OutputStream)
    					
  7. 저장한 다음 솔루션을 빌드하십시오.

샘플 ASP.NET 응용 프로그램 테스트

  1. 시작 및 WebForm1.aspx 브라우저에서 표시할 XSLTPiplelineDemo ASP.NET 응용 프로그램을 실행하십시오.
  2. WebForm1.aspxPage_Load 이벤트 프로시저에 코드를 XSLT 변환을 실행하고 출력을 생성합니다 (패밀리 이름을 기준으로 내림차순으로)는 정렬된 표시하는 HTML 표 형태로 해당 직원의 목록.
  3. ASP.NET 응용 프로그램을 종료하기 위해 브라우저 창을 닫습니다.

속성

기술 자료: 320847 - 마지막 검토: 2003년 9월 4일 목요일 - 수정: 3.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
키워드:?
kbmt kbbcl kbhowtomaster KB320847 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com