Перейти к содержанию

Заворушка с XML данными / XSL


Рекомендуемые сообщения

Большинство людей знают о HTML/CSS/javascript/XML, но никогда не знали, что по XML данным можно формировать, например, HTML по другой разметке XSL.

Формат XML это необычно мощная маркап разметка данных.

XML и HTML = XSL = XSLT+ EXSLT + XPath + XSL-FO

XSL - языки преобразования и визуализации XML-документов:

1) XSLT: язык преобразования XML-документов

2) EXSLT (Extensions to Extensible Stylesheet Language Transformations) — общественная инициатива по созданию расширений для XSLT, придающих бо?льшую функциональность языку трансформаций. Образцами расширений являются математические функции (генерация случайного числа), работа с датами, расширенные операции со строками и регулярными выражениями.

3) XPath (XML Path Language) — язык запросов к элементам XML-документа.Разработан для организации доступа к частям документа XML в файлах трансформации XSLT. Входит в XQuery.

4) XSL-FO - язык разметки типографских макетов и иных предпечатных материалов.

Короче из XML можно сгенерировать HTML, XHTML, тестовый файл и даже можно сформовать другой XML. А также благодаря языку XSL-FO можно сформовать документ для печати в виде текстового фалйа, PDF, PS, RTF. А также SQL, или даже SWF (flash-запускаемый модуль), а также сформировать другую XSL разметку.

Наиболее востребованное это XSLT и XPath с помощью которых можно создавать стили формирования документов из динамично изменяющейся базы данных. Таким образом вам достаточно иметь в Интернете вирутальную папку с ftp доступом для обновления вашей базы данных XML. Когда пользователь открывает ваш сайт, то формируется из XSLT+XPath. Весьма удобно если у вас нет доступа к инфраструктурам: серверу базы данных, веб-серверу и т.п.

Хороший пример: Группировка и сортировка годов

XML:

 <?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="years.xsl"?>
<root>
<object year="2003"/>
<object year="2001"/>
<object year="2005"/>
<object year="2005"/>
<object year="2003"/>
<object year="2006"/>
<object year="2006"/>
<object year="2006"/>
<object year="2005"/>
<object year="2001"/>
</root>

years.xsl:

 <?xml version="1.0"?>

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

<xsl:key name="years" match="/root/object" use="@year" />

<xsl:template match="root" priority="-1">
<HTML>
<BODY>
<xsl:for-each select="object[generate-id()=generate-id(key('years',@year))]">
<xsl:sort select="@year" order="descending"/>

<xsl:value-of select="@year" />
<xsl:if test="position()!=last()">
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

Результат:

2006, 2005, 2003, 2001

Теперь не только программисты, но и вы знаете о роли XLS.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.