Что еще можно сделать с XML + XSLT + XSL
-
Vlad Drakula
Re: Что еще можно сделать с XML + XSLT + XSL
E-mail
Цитата:
приложение обещенное когда покажешь?..
времени нету запустить в свет! но скоро вы его все увидете!
benya
Цитата:
А что такое replace(., '\n', '
')? В спецификации я такого не видел.
это есть в спецификации XSLT 2.0
Цитата:
приложение обещенное когда покажешь?..
времени нету запустить в свет! но скоро вы его все увидете!
benya
Цитата:
А что такое replace(., '\n', '
')? В спецификации я такого не видел.
это есть в спецификации XSLT 2.0
Re: Что еще можно сделать с XML + XSLT + XSL
Vlad Drakula
скоро это когда? когда на пенсию выйдешь?
уже второй месяц идет, еще несколько таких месяцев и ты в гробу будешь
поспеши с приложением!
в гробу отдохнешь, ты там вечность целую лежать будешь
скоро это когда? когда на пенсию выйдешь?

уже второй месяц идет, еще несколько таких месяцев и ты в гробу будешь

поспеши с приложением!
в гробу отдохнешь, ты там вечность целую лежать будешь

-
benya
Re: Что еще можно сделать с XML + XSLT + XSL
Господа, есть следующий XML документ:
Код:
Нужно сделать список название/описание, а сверху страницы только названия, которые будут ссылками-якорями на
соответствующие элементы списка.
Типа так:
Код:
И так далее... Как с помощью XSLT это можно сделать? Я написал 2 шаблонных правила, а поскольку информация
извлекается из одного и того же места правила переопределяют друг друга. Как бороться?
Код:
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?>
<site>
<tours>
<podname>Название</podname>
<opis>Описание1</opis>
</tours>
<tours>
<podname>Название2</podname>
<opis>Описание2</opis>
</tours>
...
</site>Нужно сделать список название/описание, а сверху страницы только названия, которые будут ссылками-якорями на
соответствующие элементы списка.
Типа так:
Код:
Код: Выделить всё
Название
Название1
Название2
Название
Описание
Название1
Описание1
Название2
Описание2И так далее... Как с помощью XSLT это можно сделать? Я написал 2 шаблонных правила, а поскольку информация
извлекается из одного и того же места правила переопределяют друг друга. Как бороться?
-
Vlad Drakula
Re: Что еще можно сделать с XML + XSLT + XSL
benya
нузно использовать именованные шаблоный с параметрами + разные моды преобразования
нузно использовать именованные шаблоный с параметрами + разные моды преобразования
-
benya
Re: Что еще можно сделать с XML + XSLT + XSL
Кстати, а с какой версией XSLT работает LibXSLT??? Что-то я обнаружил что...1.0. (Sablotron вроде тоже.) Зачем же тогда спецификация 1.1 не говоря уже про 2.0 если её ничто не поддерживает?
-
Vlad Drakula
Re: Что еще можно сделать с XML + XSLT + XSL
mar
еще раз перечитал твой вопрос... но не уверен что я его понял...
у тебя есть данный от базы...
пихает их в XML
после чего вызываем преобразование:
я для орработки повторяющихся данных используем шаблон:
HTML код:
еще раз перечитал твой вопрос... но не уверен что я его понял...
у тебя есть данный от базы...
пихает их в XML
Код: Выделить всё
while( $programData = mysql_fetch_assoc($List) )
{
$XML .='<program>';
foreach($programData as $name => $value)
$XML .='<'.$name.'><![CDATA['.$value.']]></'.$name.'>';
$XML .='</program>';
}после чего вызываем преобразование:
Код: Выделить всё
xml2html($XML);я для орработки повторяющихся данных используем шаблон:
HTML код:
Код: Выделить всё
<xsl:template match="program">
<li>
<a href="./program.php?pid={Id/text()}">
<xsl:value-of select="ProgramName/text()"/>
</a>
</li>
</xsl:template>
<xsl:template match="program" mode="DescriptionSmall">
<fieldset>
<legend>
<xsl:value-of select="ProgramName/text()"/>
</legend>
<p/>(Êîë-âî ñêà÷èâàíèé: <xsl:value-of select="NAll/text()"/>, Îáíîâëåíî: <xsl:value-of select="Date/text()"/>,
<xsl:if test="License/text()">
<xsl:value-of select="License/text()"/>,
</xsl:if>
<xsl:value-of select="Size/text()"/>
<xsl:text> )</xsl:text>
<p/>
<p><xsl:value-of select="DescriptionSmall/text()" disable-output-escaping="yes"/></p>
<p>
<a href="./download.php?pid={Id/text()}"><img src="images/download.gif" alt="Ñêà÷àòü" width="17" height="23" hspace="10" border="0" align="right"/></a>
<a href="./program.php?pid={Id/text()}">×èòàòü îïèñàíèå ïîëíîñòüþ</a>
<xsl:if test="/page/head/moder = 1">
| <a href="./edit.php?pid={Id/text()}">Ðåäàêòèðîâàòü
<xsl:if test="ShowProgram = 0">(ñêðûòà)</xsl:if>
</a>
</xsl:if>
</p>
</fieldset>
</xsl:template>
<xsl:template match="program" mode="Search">
<fieldset>
<legend>
<xsl:value-of select="ProgramName/text()"/>
</legend>
<p/>(Êîë-âî ñêà÷èâàíèé: <xsl:value-of select="NAll/text()"/>, Îáíîâëåíî: <xsl:value-of select="Date/text()"/>,
<xsl:if test="License/text()">
<xsl:value-of select="License/text()"/>,
</xsl:if>
<xsl:value-of select="Size/text()"/>
<xsl:text> )</xsl:text>
<p/>
<p><xsl:value-of select="DescriptionSmall/text()"/></p>
<p>
<a href="./download.php?pid={Id/text()}"><img src="images/download.gif" alt="Ñêà÷àòü" width="17" height="23" hspace="10" border="0" align="right"/></a>
<a href="./program.php?pid={Id/text()}">×èòàòü îïèñàíèå ïîëíîñòüþ</a>
<xsl:if test="/page/head/moder = 1">
| <a href="./edit.php?pid={Id/text()}">Ðåäàêòèðîâàòü<xsl:if test="ShowProgram = 0">(ñêðûòà)</xsl:if></a>
</xsl:if>
</p>
<xsl:if test="SiteSearch/Article/node()">
<p><b>Ðåçóëüòàòû ïîèñêà ïðîãðàììû ïî ñàéòó:</b></p>
<xsl:for-each select="SiteSearch/Article[node()]">
<BLOCKQUOTE><a href="{/page/head/SiteDomine}display.php?id={ID}"><xsl:value-of select="Title"/></a><p><xsl:value-of select="Content" disable-output-escaping="yes"/></p></BLOCKQUOTE>
</xsl:for-each>
<a class="head" href="{/page/head/SiteDomine}search.php?searchtext={ProgramNameEncode}">Ñìîòðåòü âñå ðåçóëüòàòû ïîèñêà ïðîãðàììû ïî ñàéòó -></a>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="program" mode="Description">
<h2 align="center">
<xsl:value-of select="ProgramName/text()"/>
<xsl:if test="/page/head/moder = 1"> (<a href="./edit.php?pid={Id/text()}">Ðåäàêòèðîâàòü<xsl:if test="ShowProgram = 0"> (ñêðûòà)</xsl:if></a>)</xsl:if>
</h2>
<br/>
<b>Îáíîâëåíà: <font color="#299024"><xsl:value-of select="Date/text()"/></font></b> (Äîáàâëåíà: <xsl:value-of select="RegDate/text()"/>)<br/>
<b>Îïåðàöèîííàÿ ñèñòåìà: <font color="#299024"><xsl:value-of select="Os/text()"/></font></b><br/>
<b>ßçûê èíòåðôåéñà: <font color="#299024"><xsl:value-of select="Lang/text()"/></font></b><br/>
<b>Òèï ëèöåíçèè: <font color="#299024"><xsl:value-of select="License/text()"/></font></b><br/>
Êîëè÷åñòâî ñêà÷åê çà ñåãîäíÿ: <b><xsl:value-of select="N/text()"/></b><br/>
Êîëè÷åñòâî ñêà÷åê âñåãî: <b><xsl:value-of select="NAll/text()"/></b><br/><br/>
<xsl:for-each select="img">
<br/>
<center>
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</center>
<br/>
</xsl:for-each>
<ul class="download">
<li>
<a class="head" href="./download.php?pid={Id/text()}">
<b>Ñêà÷àòü ( <xsl:value-of select="Size/text()"/> )</b>
</a>
</li>
<xsl:if test="HomePage/text()">
<li>
<a class="head" href="{HomePage/text()}">
<b>
<xsl:choose>
<xsl:when test="Author"><xsl:value-of select="Author/text()"/></xsl:when>
<xsl:otherwise>Äîìàøíÿÿ ñòðàíèöà ïðîãðàììû</xsl:otherwise>
</xsl:choose>
</b>
</a>
</li>
</xsl:if>
<li>
<xsl:choose>
<xsl:when test="threadid/text() != 0">
<a class="head" href="{/page/head/ForumDomine/text()}showthread.php?t={threadid/text()}"><b>Îáñóäèòü íà ôîðóìå</b></a>
</xsl:when>
<xsl:otherwise>
<a class="head" href="{/page/head/ForumDomine/text()}"><b>Îáñóäèòü íà ôîðóìå</b></a>
</xsl:otherwise>
</xsl:choose>
</li>
</ul>
<br/>
<xsl:value-of disable-output-escaping="yes" select="Description/text()"/>
</xsl:template>-
benya
Re: Что еще можно сделать с XML + XSLT + XSL
Saxon работает под win32 (?). На самом деле мне у своего хостера не удалось даже установить LibXML, не говоря уже о LibXSLT. Они в каком-то диком ужасе от этих модулей.
Как-то все оно медленно распространяется... Никому оказывается это не нужно. Я уже так привык в "деревьях" ковыряться..
Бред какой-то.
Как-то все оно медленно распространяется... Никому оказывается это не нужно. Я уже так привык в "деревьях" ковыряться..
Бред какой-то.
-
Vlad Drakula
Re: Что еще можно сделать с XML + XSLT + XSL
benya
саксон работает под явой, так что он есть под всеми операционками...
benya
дело в том что людей хорошо владеющих XSLT очень мало... а тех кто может вытворить на нем все что еще мало...
но если не умело им пользоваться можно вогнать сервер в такой ступор...
саксон работает под явой, так что он есть под всеми операционками...
benya
дело в том что людей хорошо владеющих XSLT очень мало... а тех кто может вытворить на нем все что еще мало...
но если не умело им пользоваться можно вогнать сервер в такой ступор...
-
Vlad Drakula
Re: Что еще можно сделать с XML + XSLT + XSL
benya
ну...
вроде это не сложно устанавливать...
Цитата:
On Unix, run configure with the --enable-xslt --with-xslt-sablot options. The Sablotron library should be installed somewhere your compiler can find it.
Make sure you have the same libraries linked to the Sablotron library as those, which are linked with PHP. The configuration options: --with-expat-dir=DIR --with-iconv-dir=DIR are there to help you specify them. When asking for support, always mention these directives, and whether there are other versions of those libraries installed on your system somewhere. Naturally, provide all the version numbers.
сейчас есть хостеры которые все это готовы поставить... просто надо поискать...
ну...
вроде это не сложно устанавливать...
Цитата:
On Unix, run configure with the --enable-xslt --with-xslt-sablot options. The Sablotron library should be installed somewhere your compiler can find it.
Make sure you have the same libraries linked to the Sablotron library as those, which are linked with PHP. The configuration options: --with-expat-dir=DIR --with-iconv-dir=DIR are there to help you specify them. When asking for support, always mention these directives, and whether there are other versions of those libraries installed on your system somewhere. Naturally, provide all the version numbers.
сейчас есть хостеры которые все это готовы поставить... просто надо поискать...
-
mar
Re: Что еще можно сделать с XML + XSLT + XSL
та, вот еще
Цитата:
Статья рассчитана на начинающих пользователей XSLT-шаблонизации, знающих хотя бы ее основы.
основы знаю плохо, но пошла читать
Александр Календарев. Шаблонизация на XSLT. Приемы и примеры
Цитата:
Статья рассчитана на начинающих пользователей XSLT-шаблонизации, знающих хотя бы ее основы.
основы знаю плохо, но пошла читать
