Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Порядок выполнения лабораторной работы





1.Реализация XSLT преобразования XML документа в XHTML средствами браузера.

  1. Создайте файл ttable.xml следующего содержания:

2. <?xml version="1.0"?>

3. <?xml-stylesheet type="text/xsl" href="ttable.xsl"?>

4. <timetable>

5. <lesson>

6. <timeFrom>09.30</timeFrom>

7. <timeTo>11.00</timeTo>

8. <subject>Deutsch</subject>

9. <teacher>Borisova</teacher>

10. </lesson>

11. <lesson>

12. <timeFrom>11.10</timeFrom>

13. <timeTo>12.20</timeTo>

14. <subject>SAP Administration</subject>

15. <teacher>Petrov</teacher>

16. </lesson>

17. <lesson>

18. <timeFrom>12.40</timeFrom>

19. <timeTo>14.00</timeTo>

20. <subject>SAP Administration</subject>

21. <teacher>Ivanov</teacher>

22. </lesson>

23. <lesson>

24. <timeFrom>14.00</timeFrom>

25. <timeTo>15.20</timeTo>

26. <subject>Wen-technology</subject>

27. <teacher>Loktev</teacher>

28. </lesson>

</timetable>

  1. Подготовьте для него соответствующий файл таблицы стилей (ttable.xsl):

30. <?xml version="1.0" encoding="ISO-8859-1"?>

31.

32. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

33.

34. <xsl:template match="/">

35. <html>

36. <body>

37. <h2>My academical timetable</h2>

38. <table border="1">

39. <tr bgcolor="#a5abfa">

40. <th align="left">Time From</th>

41. <th align="left">Subject</th>

42. <th align="left">Teacher</th>

43. </tr>

44. <xsl:for-each select="timetable/lesson">

45. <tr>

46. <td><xsl:value-of select="timeFrom"/></td>

47. <td><xsl:value-of select="subject"/></td>

48. <td><xsl:value-of select="teacher"/></td>

49. </tr>

50. </xsl:for-each>

51. </table>

52. </body>

53. </html>

54. </xsl:template>

</xsl:stylesheet>

Первая строка в файле ttable.xml вида:

<?xml-stylesheet type="text/xsl" href="ttable.xsl"?>

представляет собой ссылку на подходящую таблицу стилей.

В данном примере для описания шаблона был использован элемент <xsl:template>.

Атрибут match применяется для связывания XML элемента с шаблоном. Значение атрибута match является выражение XPath. В данном случает match="/" указывает на весь документ.

Содержимое элемента <xsl:template> описывает фрагмент HTML кода в выходном документе. Элемент <xsl:value-of> может быть использован для извлечения значения XML элемента и добавления его в выходной поток при преобразовании. Значение атрибута select является выражением XPath, которое напоминает нотацию, используемую в файловой системе; знак (/) указывает на обращение к подкаталогу.

Элемент <xsl:for-each> позволяет выбирать каждый элемент XML указанного множества узлов.

  1. При наличии подходящего браузера можно будет увидеть следующий результат после загрузке файла ttable.xml:

 

Для фильтрации вывода элементов можно добавить атрибут элемента <xsl:for-each>, задающий критерий отбора элементов. Например:

<xsl:for-each select="timetable/lesson[subject=' SAP Administration']">

Проверьте работу данного фильтра.

Допустимо использование следующих операторов для описания фильтра:

    • = (равно)
    • != (не равно)
    • &lt; (меньше чем)
    • &gt; (больше чем)

2. Реализация преобразования с помощью JavaScript.

  1. Подготовьте html файл, содержащий код:

2. <html>

3. <head>

4. <script>

5. function loadXMLDoc(fname)

6. {

7. var xmlDoc;

8. // Код для IE

9. if (window.ActiveXObject)

10. {

11. xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

12. }

13. // Код для Mozilla, Firefox, Opera и др.

14. else if (document.implementation

15. && document.implementation.createDocument)

16. {

17. xmlDoc=document.implementation.createDocument("","",null);

18. }

19. else

20. {

21. alert('Your browser cannot handle this script');


22. }

23. xmlDoc.async=false;

24. xmlDoc.load(fname);

25. return(xmlDoc);

26. }

27.

28. function displayResult()

29. {

30. xml=loadXMLDoc("ttable.xml");

31. xsl=loadXMLDoc("ttable.xsl");

32. // Код для IE

33. if (window.ActiveXObject)

34. {

35. ex=xml.transformNode(xsl);

36. document.getElementById("example").innerHTML=ex;

37. }

38. // Код для Mozilla, Firefox, Opera и др.

39. else if (document.implementation

40. && document.implementation.createDocument)

41. {

42. xsltProcessor=new XSLTProcessor();

43. xsltProcessor.importStylesheet(xsl);

44. resultDocument = xsltProcessor.transformToFragment(xml,document);

45. document.getElementById("example").appendChild(resultDocument);

46. }

47. }

48. </script>

49. </head>

50. <body id="example" onLoad="displayResult()">

51. </body>

</html>

Функция loadXMLDoc() загружает XML и XSL файлы в зависимости от типа браузера.

Функция displayResult() используется для отображения XML файла в стиле, задаваемом XSL файлом. Она выполняет следующие действия:

    • загружает XML и XSL.
    • определяет тип браузера.
    • если браузер поддерживает ActiveX объекты:
      • с помощью метода transformNode() таблица стилей XSL применяется к XML документу.
      • формируется тело текущего документа.
    • если браузер клиента не поддерживает ActiveX объекты:
      • создается новый объект XSLTProcessor и в него импортируется XSL файл.
      • с помощью метода transformToFragment() таблица стилей XSL применяется к XML документу.
      • формируется тело текущего документа.
  1. Загрузите этот документ в веб-браузере.






Date: 2016-07-05; view: 244; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.009 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию