Latest web development tutorials

클라이언트에서 XSLT

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


자바 스크립트 솔루션

이전 장에서, 우리는 어떻게 XHTML로 XML 문서를 변환하는 XSLT를 사용하도록 가르쳤다. XML 파일에 추가 XSL 스타일 시트를, 그리고 브라우저를 통해 전환을 완료 : 우리는 다음과 같은 방법을 통해이 작업을 수행.

이 방법의 효과는 매우 좋은 경우에도 스타일 시트 참조는 항상 (예를 들어, 작동하지 이러한 방식을 인식하지 못하는 XSLT 브라우저)를 XML 파일에 포함되어 만족스럽지 못하다.

보다 일반적인 접근 방법은 변환을 완료 자바 스크립트를 사용하는 것이다.

자바 스크립트를 사용하여, 우리가 할 수있는 :

  • 확인 시험 브라우저
  • 브라우저와 사용자의 요구에 따라 다른 스타일을 사용

이 XSLT의 매력입니다! 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 스타일 시트를 사용할 수 있습니다.


브라우저에서 XHTML로 XML 변환

이것은 XHTML 소스 코드에 XML 파일을 클라이언트입니다 :

<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" />
</body>
</html>

»시도

팁 : 자바 스크립트를 작성하는 방법을 모르는 경우, 우리의 공부하시기 바랍니다 자바 스크립트 튜토리얼 .

예 설명 :

loadXMLDoc () 함수

loadXMLDoc () 함수는 XML과 XSL 파일을로드하기 위해 사용된다.

이것은 브라우저 종류를 확인하고 사용자가 파일을로드한다.

displayResult () 함수

이 함수는 XSL 파일을 사용하여 디스플레이 스타일 XML 파일을 정의하는데 사용된다.

  • XML 및 XSL 파일로드
  • 테스트 사용자가 브라우저 유형이
  • 사용자의 브라우저 지원 액티브 오브젝트 인 경우 :
    • XML 문서에 XSL 스타일 시트의 transformNode () 메소드를 사용
    • 현재 문서 (ID = "예")는 바디 스타일이 XML 문서를 적용한 포함 집합
  • 사용자의 브라우저는 액티브 오브젝트를 지원하지 않는 경우 :
    • 새 개체 및 가져 오기 XSL 파일을 생성 XSLTProcessor에
    • XML 문서에 XSL 스타일 시트의 transformToFragment () 메소드를 사용
    • 현재 문서 (ID = "예")는 바디 스타일이 XML 문서를 적용한 포함 집합