XSLT - 서버에서

모든 브라우저가 XSLT를 지원하지 않기 때문에, 다른 해결책으로 서버에서 XML을 XHTML로 변환하는 것을 고려할 수 있습니다.

브라우저 간 솔루션

이전 장에서는 브라우저에서 XSLT를 사용하여 XML을 XHTML로 변환하는 방법을 설명했습니다. 우리는 XML 파서를 사용하여 변환하는 JavaScript를 생성했습니다. JavaScript 솔루션은 XML 파서가 없는 브라우저에서 작동하지 않습니다. XML 데이터를 모든 유형의 브라우저에 적용하려면, 서버에서 XML 문서를 변환한 후 XHMTL로 브라우저에 전송해야 합니다.

XSLT의 또 다른 장점은 이다. XSLT의 설계 목표 중 하나는 서버에서 데이터를 하나의 형식에서 다른 형식으로 변환할 수 있게 하고, 모든 유형의 브라우저에 읽을 수 있는 데이터를 반환하는 것입니다.

XML 파일과 XSL 파일

이전 장에서 보여준 XML 문서를 확인하세요:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>

이 XML 파일을 확인하세요

및 연관된 XSL 스타일 시트:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>My CD Collection</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Title</th> 
        <th align="left">Artist</th> 
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
      </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

이 XSL 파일을 확인하세요

이 XML 파일은 XSL 파일에 대한 참조를 포함하고 있지 않다는 것을 주의해 주세요.

중요 사항:위 문장은 XML 파일이 여러 가지 다른 XSL 스타일 시트로 변환될 수 있다는 것을 의미합니다.

서버에서 XML을 XHTML로 변환하는 것

이는 서버에서 XML 파일을 XHTML로 변환하는 소스 코드입니다:

<%
'XML 로드
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'XSL 로드
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'변환 파일
Response.Write(xml.transformNode(xsl))
%>

알림:ASPM을 작성하는 방법을 모르시면, 우리의 《ASP 강의

첫 번째 코드는 마이크로소프트의 XML 파서의 인스턴스를 생성한 후, XML 파일을 메모리에 로드합니다. 두 번째 코드는 파서의 또 다른 인스턴스를 생성한 후, 이 XSL 파일을 메모리에 로드합니다. 마지막 줄 코드는 XSL 문서를 사용하여 XML 문서를 변환하고, 결과를 XHTML로 변환하여 브라우저로 전송합니다. 작업 완료!

그 작동 방식을 보세요