XSLT 클라이언트
브라우저가 XSLT를 지원하는 경우 브라우저에서 문서를 XHTML로 변환하는 데 사용할 수 있습니다.
JavaScript Solution
이전 장에서는 XSLT를 사용하여 XML 문서를 XHTML로 변환하는 방법을 설명했습니다. XSL 스타일시트를 XML 파일에 추가하고 브라우저를 통해 변환을 완료하여 이를 수행합니다.이 접근 방식이 제대로 작동하더라도 XML 파일에 스타일시트 참조를 포함하는 것이 항상 만족스러운 것은 아닙니다. 예를 들어 이 접근 방식은 XSLT를 이해하지 못하는 브라우저에서는 작동하지 않습니다.
보다 일반적인 방법은 JavaScript를 사용하여 변환을 완료하는 것입니다.
JavaScript를 사용하여 다음을 수행할 수 있습니다.
브라우저 유효성 테스트 수행
브라우저 및 사용자 요구에 따라 다양한 스타일시트 사용
이것이 XSLT의 장점입니다! XSLT의 디자인 목표 중 하나는 다양한 유형의 브라우저와 다양한 사용자 요구를 지원하면서 데이터를 한 형식에서 다른 형식으로 변환할 수 있도록 하는 것입니다.
클라이언트 측 XSLT 변환은 미래에 브라우저가 수행하는 주요 작업 중 하나가 될 것이며 특정 브라우저 시장(점자, 청각 브라우저, 네트워크 프린터, 휴대용 장치 등)에서도 성장을 볼 것입니다.
XML 파일 및 XSL 파일
이전 장에 표시된 이 XML 문서를 살펴보십시오.
< ;catalog> ;
<CD>
<title>제국 풍자극</title>
<아티스트>밥 딜런</artist>
<국가>미국</국가>
<회사>컬럼비아</company>
<가격>10.90</price>
<연도>1985년>
</cd>
.
.
</catalog>
查看 XML 문서입니다.
以及附随的 XSL 样式表:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<몸>
<h2>내 CD 컬렉션</h2>
<테이블 테두리="1">
<tr bgcolor="#9acd32">
<th align="left">제목</th>
<th align="left">아티스트</th>
</tr>
<xsl:for-each select="카탈로그/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:각각>
</테이블>
</본문>
</html>
</xsl:template>
</xsl:stylesheet>
查看 XSL 文件。
请注意 ,这个 XML 文件没有包含对 XSL 文的引用。
심각한 내용: 상면这句话意味着,XML 文件可使用多个式表来进行转换。
에서 浏览器中把 XML 转换为XHTML
这是사용于재客户端把 XML 文件转换为 XHTML 的源代码:
实例
<html> <head> <script> function loadXMLDoc(dname) { if (window.ActiveXObject) { xhttp=new ActiveXObject("Msxml2.XMLHTTP.3.0"); } else { xhttp=new XMLHttpRequest(); } xhttp.open("GET",dname,false); xhttp.send(""); return xhttp.responseXML; } function displayResult() { xml=loadXMLDoc("cdcatalog.xml"); xsl=loadXMLDoc("cdcatalog.xsl"); // code for IE if (window.ActiveXObject) { ex=xml.transformNode(xsl); document.getElementById("example").innerHTML=ex; } // code for Mozilla, Firefox, Opera, etc. else if (document.implementation && document.implementation.createDocument) { xsltProcessor=new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); resultDocument = xsltProcessor.transformToFragment(xml,document); document.getElementById("example").appendChild(resultDocument); } } </script> </head> <body onload="displayResult()"> <div id="example"></div> </body> </html>
运行实例 »
点击 "运行实例"
팁: JavaScript 작성 방법을 모르신다면 JavaScript 튜토리얼을 읽어보세요.
예제 설명:
loadXMLDoc() 함수
loadXMLDoc() 함수는 XML 및 XSL 파일을 로드하는 데 사용됩니다.
사용자가 사용하는 브라우저 유형과 파일이 로드된 브라우저 유형을 확인합니다.
displayResult() 함수
이 함수는 스타일을 정의하기 위해 XSL 파일을 사용하여 XML 파일을 표시하는 데 사용됩니다.
XML 로드 및
스타일이 적용된 XML 문서를 포함하도록 현재 문서의 본문(id="example")을 설정합니다.
- 사용자의 브라우저가 ActiveX 개체를 지원하지 않는 경우:
- 새 XSLTProcessor 개체 만들기 및 XSL 파일 가져오기
- transformToFragment() 메서드를 사용하여 XSL 스타일 시트를 XML 문서에 적용
현재 문서의 본문 설정(id=" 예") 스타일이 적용된 XML 문서를 포함합니다