Inne działy

 

XSLT - Klient

 

Jeśli Twoja przeglądarka obsługuje, XSLT można przerobić dokument XHTML w przeglądarce.


 

Rozwiązanie JavaScript

 

W poprzednich rozdziałach wyjaśniliśmy, jak XSLT może być używany do przekształcania dokumentów z XML do XHTML. Zrobiliśmy to przez dodanie arkusza stylów XSL do pliku XML i przeglądarka wykonywała transformację.

Nawet jeśli to działa dobrze, to nie zawsze jest pożądane włączenie stylu odniesienia arkuszy w pliku XML (np. nie będzie działać w przeglądarce nie obsługującej XSLT.)

Bardziej wszechstronnym rozwiązaniem byłoby wykorzystanie JavaScript do transformacji.

Za pomocą JavaScript, możemy:

  • Wykonać testy specyficzne dla przeglądarki
  • korzystać z różnych arkuszy stylów w zależności od potrzeb użytkowników i przeglądarek

To jest piękno XSLT! Jednym z celów projektu XSLT, jest to aby było możliwe, przekształcić dane z jednego formatu na inny, wspieranie różnych przeglądarek i różnych potrzeb użytkowników.

Z transformacją XSLT po stronie klienta wiąże się znaczna część zadań przeglądarek w przyszłości, jak zobaczymy wzrost na rynku specjalistycznych przeglądarek (Braille, przeglądarek głosowych, Web drukarki, urządzeń przenośnych, itp.)


 

Plik XML i plik XSL

Spójrz na dokument XML, który widać w poprzednich rozdziałach:

 

<?xml version="1.0" encoding="UTF-8"?>
<katalog>
  <cd>
    <tytuł>Empire Burlesque</tytuł>
    <artysta>Bob Dylan</artysta>
    <kraj>USA</kraj>
    <wytwórnia>Columbia</wytwórnia>
    <cena>10.90</cena>
    <rok>1985</rok>
  </cd>
.
.
</katalog>

I towarzyszący arkusz stylów XSL:

 

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
  <h2> Moja kolekcja CD </h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">Tytuł</th>
      <th style="text-align:left">Artysta</th>
    </tr>
    <xsl:for-each select="katalog/cd">
    <tr>
      <td><xsl:value-of select="tytuł" /></td>
      <td><xsl:value-of select="artysta" /></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

Należy zauważyć, że plik XML nie odwołuje się do pliku XSL.

Uwaga:Powyższe zdanie wskazuje, że plik XML może być przekształcony za pomocą wielu różnych arkuszy stylów XSL.


 

Przekształcenia XML do XHTML w przeglądarce

Oto kod źródłowy potrzebne, aby przekształcić plik XML do XHTML:

Przykład

 

<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("cdkatalog.xml");
xsl=loadXMLDoc("cdkatalog.xsl");
// kod dla IE
if (window.ActiveXObject)
  {
  ex=xml.transformNode(xsl);
  document.getElementById("example").innerHTML=ex;
  }
// kod dla 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>

Wskazówka: Jeśli nie wiesz jak napisać kod JavaScript, można zobaczyć nasz JavaScript tutorial.

 

Wyjaśnienie przykładu:

Funkcja LoadXMLDoc()

Funkcja loadXMLDoc() służy do ładowania plików XML i XSL.

Sprawdza jaką przeglądarkę użytkownika ma i ładuje plik.

Funkcja DisplayResult()

Ta funkcja służy do wyświetlania pliku XML w stylu z pliku XSL.

  • Załaduj plik XML i XSL
  • Sprawdzenie, jaką ma przeglądarkę użytkownik
  • Jeśli użytkownik ma wspieranie przeglądarki dla obiektu ActiveX:
    • Aby zastosować arkusz stylów XSL do dokumentu xml należy użyć metody transformNode()
    • Zestaw treści bieżącego dokumentu (id = "example") zawiera dokument stylu xml
  • Jeśli użytkownik ma przeglądarkę, która nie obsługuje obiektów ActiveX:
    • Utwórz nowy obiekt XSLTProcessor i zaimportuj plik XSL do niego
    • Aby zastosować arkusz stylów XSL do dokumentu xml należy użyć metody transformToFragment()
    • Zestaw treści bieżącego dokumentu (id = "example") zawiera dokument stylu xml 

 

Zobacz nasze wszystkie kursy

WWW


HTML
HTML - Znaczniki
CSS - Tutorial
CSS - Selektory
PHP
JavaScript

XML

XSLT

Bazy danych


SQL
SQLite
MySQL
PostgreSQL

 

 

Programowanie


C
C++
C#
Java
VisualBasic
Python

Linux


Podstawy Linuxa
Bash
Linuks artykuły

Windows


Excel funkcje
Windows wskazówki
Outlook

Pozotałe działy


Programy
Rozrywka

 

 

 

This email address is being protected from spambots. You need JavaScript enabled to view it.