XSLT 튜토리얼로그인
XSLT 튜토리얼
작가:php.cn  업데이트 시간:2022-04-20 15:02:22

XSLT 클라이언트



브라우저가 XSLT를 지원하는 경우 브라우저에서 문서를 XHTML로 변환하는 데 사용할 수 있습니다.


JavaScript Solution

이전 장에서는 XSLT를 사용하여 XML 문서를 XHTML로 변환하는 방법을 설명했습니다. XSL 스타일시트를 XML 파일에 추가하고 브라우저를 통해 변환을 완료하여 이를 수행합니다.

이 접근 방식이 제대로 작동하더라도 XML 파일에 스타일시트 참조를 포함하는 것이 항상 만족스러운 것은 아닙니다. 예를 들어 이 접근 방식은 XSLT를 이해하지 못하는 브라우저에서는 작동하지 않습니다.

보다 일반적인 방법은 JavaScript를 사용하여 변환을 완료하는 것입니다.

JavaScript를 사용하여 다음을 수행할 수 있습니다.

  • 브라우저 유효성 테스트 수행

  • 브라우저 및 사용자 요구에 따라 다양한 스타일시트 사용

이것이 XSLT의 장점입니다! XSLT의 디자인 목표 중 하나는 다양한 유형의 브라우저와 다양한 사용자 요구를 지원하면서 데이터를 한 형식에서 다른 형식으로 변환할 수 있도록 하는 것입니다.

클라이언트 측 XSLT 변환은 미래에 브라우저가 수행하는 주요 작업 중 하나가 될 것이며 특정 브라우저 시장(점자, 청각 브라우저, 네트워크 프린터, 휴대용 장치 등)에서도 성장을 볼 것입니다.


XML 파일 및 XSL 파일

이전 장에 표시된 이 XML 문서를 살펴보십시오.

<?xml version="1.0" 인코딩="ISO-8859-1"?>
< ;catalog> ;
​ <CD>
​​ <title>제국 풍자극</title>
​​ <아티스트>밥 딜런</artist>
​​ <국가>미국</국가>
​​ <회사>컬럼비아</company>
​​ <가격>10.90</price>
​​ <연도>1985
​ </cd>
.
.
</catalog>

查看 XML 문서입니다.

以及附随的 XSL 样式表:

<?xml version="1.0" 인코딩="ISO-8859-1"?>
<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 문서를 포함합니다