Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabKompl1_XML.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.8 Mб
Скачать

Лабораторная работа №7

Преобразование документа XML в документ HTML

Цель работы:

Изучить процесс преобразования XML документа в документ HTML

Хо дработы:

Ключем к преобразованию документа XML в документа HTML является элемент <xsl:output method="text" encoding="UTF-8" />,вам необходимо поменять метод вывода с text на html,для реализации преобразования.

Преобразуйте xml документ в html,для этого сделайте следующее:

  1. Создайте документ под названием PreobrXvH.xml

<?xml version="1.0" encoding="windows-1251" ?>

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

<notebook>

<person>

<name first="Ивaн" second="Петрович" surname="Сидоров" />

<address>

<street>Caдовая, 12 — 34</street>

<city>Новокозлосвк</city>

<zip>123321</zip>

</address>

<phone-list>

<work-phone>123456</work-phone>

<home-phone>654321</home-phone>

</phone-list>

</person>

<person>

<name first="Mapия" second="Ивановна" surname="Федорова" />

<address>

<street>Нижняя, 12</street>

<city>3apeченкс</city>

<zip>321123</zip>

</address>

<phone-list>

<home-phone>22432l</home-phone>

</phone-list>

</person>

</notebook>

  1. Теперь создайте таблиц стилей под названием PreobrXvH.xsl:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" encoding="windows-1251"/>

<xsl:template match="/">

<html><head><title>Адресная книжка</title></head>

<body><h2>Фамилии,адреса и телефоны</h2>

<xsl:apply-templates />

</body></html>

</xsl:template>

<xsl:template match="name">

<p />

<xsl:value-of select="@first" /> <xsl:text> </xsl:text>

<xsl:value-of select="@second" /> <xsl:text> </xsl:text>

<xsl:value-of select="@surname" /> <br />

</xsl:template>

<xsl:template match="address">

<br />

<xsl:value-of select="street" /> <xsl:text> </xsl:text>

<xsl:value-of select="city" /> <xsl:text> </xsl:text>

<xsl:value-of select="zip" /> <br />

</xsl:template>

<xsl:template match="phone-list">

Рабочий: <xsl:value-of select="work-phone" /> <br />

Домашний: <xsl:value-of select="home-phone" /> <br />

</xsl:template>

</xsl:stylesheet>

  1. Отобразите PreobrXH.xml в браузере, у вас должно получится то, что представлено на рисунке 4.11

Рисунок 4.11

Лабораторная работа №8

Таблицы стилей CSS

Цель работы:

Изучить таблицы стилей CSS

Ход работы:

CSS – это отличный от XML синтаксис, используемый для описания внешнего вида определенных элементов документа. CSS – это очень простой язык. Никаких преобразований не производится; обработанные символьные данные документа отображаются примерно так же, как они присутствуют в XML-документе, однако если требуется перегруппировать содержимое документа перед отображением его

пользователю, всегда можно преобразовать документ с помощью XSLT и затем применить к нему таблицу стилей CSS. Таблица стилей CSS никак не меняет разметку XML-документа. Она лишь применяет правила к уже существующей разметке.

  1. Откройте новый, пустой текстовый файл в вашем текстовом редакторе и заполните CSS-таблицу, как показано в Листинге 1.1

  2. С помощью команды Save вашего текстового редактора сохраните таблицу стиля на жестком диске, задав имя файла Inventory01.css. Созданная вами CSS-таблица сообщает Mozilla Firefox, каким образом форматировать символьные данные элементов.

  • Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).

  • Отображать каждый элемент TITLE курсивом (font-style:italic).

  • Отображать каждый элемент AUTHOR полужирным (font-weight:bold).

Листинг 1.1

/* File Name: Inventory01.css */

BOOK

{display:block;

margin-top:12pt;

font-size:10pt}

TITLE

{font-style:italic}

AUTHOR

{font-weight:bold}

  1. В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в предыдущем упражнении. Добавьте в конце пролога документа (непосредственно над элементом INVENTORY) следующую инструкцию по обработке:

<?xml-stylesheet type="text/css" href="Inventory01.css"?>

Эта инструкция по обработке устанавливает связь созданной вами CSS-таблицы и XML-документа. В результате при открытии документа в Mozilla Firefox браузер отобразит содержимое документа в соответствии с инструкциями, записанными в таблице стилей.

  1. Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с

<!-- File Name: Inventory.xml -->

на

<!-- File Name: Inventory01.xml -->

В Листинге 1.2 представлен весь XML-документ.

  1. Воспользуйтесь командой Save As (Сохранить как) вашего текстового редактора, чтобы сохранить копию измененного документа под именем Inventory01.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory01.css.

<?xml version="1.0"?>

<!-- File Name: Inventory01.xml -->

<?xml-stylesheet type="text/css" href="Inventory01.css"?>

<INVENTORY>

<BOOK>

<TITLE>The Adventures of Huckleberry Finn</TITLE>

<AUTHOR>Mark Twain</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>298</PAGES>

<PRICE>$5.49</PRICE>

</BOOK>

<BOOK>

<TITLE>Leaves of Grass</TITLE>

<AUTHOR>Walt Whitman</AUTHOR>

<BINDING>hardcover</BINDING>

<PAGES>462</PAGES>

<PRICE>$7.75</PRICE>

</BOOK>

<BOOK>

<TITLE>The Legend of Sleepy Hollow</TITLE>

<AUTHOR>Washington Irving</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>98</PAGES>

<PRICE>$2.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Marble Faun</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>473</PAGES>

<PRICE>$10.95</PRICE>

</BOOK>

<BOOK>

<TITLE>Moby-Dick</TITLE>

<AUTHOR>Herman Melville</AUTHOR>

<BINDING>hardcover</BINDING>

<PAGES>724</PAGES>

<PRICE>$9.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Portrait of a Lady</TITLE>

<AUTHOR>Henry James</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>256</PAGES>

<PRICE>$4.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Scarlet Letter</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>253</PAGES>

<PRICE>$4.25</PRICE>

</BOOK>

<BOOK>

<TITLE>The Turn of the Screw</TITLE>

<AUTHOR>Henry James</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>384</PAGES>

<PRICE>$3.35</PRICE>

</BOOK>

</INVENTORY>

  1. Откройте документ Inventory01.xml браузером Mozilla Firefox у вас должно получится то что показано на рисунке 4.12:

Рисунок 4.12

  1. В вашем текстовом редакторе откройте документ Inventory.xml. Добавьте в конце пролога документа (над элементом INVENTORY) следующую инструкцию по обработке:

<?xml-stylesheet type="text/css" href="Inventory02.css"?>

Эта инструкция по обработке устанавливает связь между новой CSS-таблицей, созданной вами, и XML-документом.

  1. Чтобы отразить новое присвоенное вами имя файла, измените комментарий в начале документа с

<!-- File Name: Inventory.xml -->

на

<!-- File Name: Inventory02.xml -->

В Листинге 1.2 представлен полный XML-документ.

  1. Воспользуйтесь командой Save As (Сохранить как), чтобы сохранить копию измененного документа под именем Inventory02.xml. Проверьте, чтобы этот файл был сохранен в той же папке, что и файл Inventory02.css.

<?xml version="1.0"?>

<!-- File Name: Inventory02.xml -->

<?xml-stylesheet type="text/css" href="Inventory02.css"?>

<INVENTORY>

<BOOK>

<TITLE>The Adventures of Huckleberry Finn</TITLE>

<AUTHOR>Mark Twain</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>298</PAGES>

<PRICE>$5.49</PRICE>

</BOOK>

<BOOK>

<TITLE>Leaves of Grass</TITLE>

<AUTHOR>Walt Whitman</AUTHOR>

<BINDING>hardcover</BINDING>

<PAGES>462</PAGES>

<PRICE>$7.75</PRICE>

</BOOK>

<BOOK>

<TITLE>The Legend of Sleepy Hollow</TITLE>

<AUTHOR>Washington Irving</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>98</PAGES>

<PRICE>$2.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Marble Faun</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>473</PAGES>

<PRICE>$10.95</PRICE>

</BOOK>

<BOOK>

<TITLE>Moby-Dick</TITLE>

<AUTHOR>Herman Melville</AUTHOR>

<BINDING>hardcover</BINDING>

<PAGES>724</PAGES>

<PRICE>$9.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Portrait of a Lady</TITLE>

<AUTHOR>Henry James</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>256</PAGES>

<PRICE>$4.95</PRICE>

</BOOK>

<BOOK>

<TITLE>The Scarlet Letter</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>253</PAGES>

<PRICE>$4.25</PRICE>

</BOOK>

<BOOK>

<TITLE>The Turn of the Screw</TITLE>

<AUTHOR>Henry James</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>384</PAGES>

<PRICE>$3.35</PRICE>

</BOOK>

</INVENTORY>

  1. Откройте документ Inventory01.xml браузером у вас должно получится то что показано на рисунке 4.13 и браузер откроет документ Inventory02.xml и отобразит его в соответствии с правилами, установленными в связанной таблице стилей Inventory02.css.

Рисунок 4.13:

XSL-FO

Язык форматирования XSL — это одна из реализаций XML. Сейчас в язык XSL входят

только средства форматирования, поэтому его часто называют "XSL-FO". Язык XSL объявляет более пятидесяти элементов XML. Имена этих элементов находятся в пространстве имен http://www.w3.org/1999/XSL/Format, которому обычно дают префикс fo. Эти элементы как раз и образуют классы объектов форматирования.

Элементы XSL-FO

  • Корневым элементом документа XSL служит элемент fo:root. В него вкладывается один или несколько элементов fo:page-sequence, описывающих весь набор страниц в целом, и ровно один элемент fo: layout-master-set, содержащий подробные описания страниц во вложенных в него элементах. Кроме этих элементов непосредственно в корневой элемент можно вложить только элемент fo:declaration, содержащий информацию для форматера

  • Элемент fo:page-sequence содержит необязательный заголовок — вложенный элемент fo:title, один обязательный вложенный элемент fo:fiow, за дающий динамически формируемую выводимую информацию, и сколько угодно необязательных элементов fo:static-content, содержащих определенный неизменный текст, например, колонтитулы.

  • Элемент fo: layout-master-set содержит элементы fo: simple-page-master, описывающие строение страницы, и/или элементы fo:page-sequence-master, описывающие порядок применения к страницам правил форматирования.

<?xml version="1.0" encoding="windows-1251"?>

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

<fo:layout-master-set>

<fo:simple-page-master master-name="mypage">

</fo:simple-page-master>

</fo:layout-master-set>

<fо:page-sequence master-reference="mypage">

<fo:flow flow-name="xsl-region-body">

</fo:flow>

</fo:page-sequence>

</fo:root>

Создайте простейший XSL-FO документ, для этого сделайте следующие:

  1. Создайте документ под названием XSLFO.fo

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]