Войти

Показать полную графическую версию : Что еще можно сделать с XML + XSLT + XSL


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 [13]

Vlad Drakula
14-06-2007, 12:58
Sander83
2)хочу что бы на сайте лежал xml и файл трансформации, xml легко модифицировать. Не хочеться использовать серверную обработку.
И не хочеться на клиенте пользоваться mshtml или XSLTrasnform библиотеками, так как их загрузка может быть запрещена на клиенте.

так почему вам не держать XML, а не XHTML ?

cobaa
14-06-2007, 16:57
Может подскажете мне как можно вывести для печати на стикере через xsl
вывожу в html.
Там нужна таблица 8 строк на 3 столбца
если пишу

<xsl:for-each select="report/rec">
<xsl:if test="(position()-1) mod 3=0"><tr></xsl:if>
<td><xsl:value-of select="fio"/><br /><xsl:value-of select="adres"/><br /><br /><xsl:value-of select="account"/></td>
<xsl:if test="position() mod 3=0"></tr></xsl:if>
<xsl:if test="position() mod 24=0"><p class="new_page"></p></table><table border="1"></xsl:if>
То ругается что внутри <xsl:if> не может быть неоткрытых или незакрытых тегов

vadimiron
14-06-2007, 18:00
Одно решение, которое я исользовал для похожей задачи

<xsl:if test="(position() mod $objectsProRow)= 0">

<xsl:text disable-output-escaping="yes">&lt;/tr&gt;</xsl:text>
<xsl:text disable-output-escaping="yes">&lt;tr&gt;</xsl:text>
</xsl:if>

то есть вместо < использовать &lt; и тд

cobaa
14-06-2007, 19:19
Спасибо большое - помогло, а то до этого 2 дня ушли насмарку!!!
И в догонку вопрос - можно ли как-то получить html-код готовой страницы, чтобы проверить ее на валидейт, найти ошибки в форматировании и т.п.

Vlad Drakula
15-06-2007, 13:15
vadimiron
в XSL 2.0 не заработает

cobaa
можно ли как-то получить html-код готовой страницы, чтобы проверить ее на валидейт, найти ошибки в форматировании и т.п.
1) открываем XmlSpy
2) открываем XML файл
3) открываем XSL файл
4) нашимаем F10
5) создается новый файл с результатом трансформации
6) сохраняем как нужно

FADE
04-07-2007, 17:27
народ, как будет выглядеть шаблон для помечания нескольких чекбоксов из определенного количества?

есть список всех чекбоксов:

<city>
<item>1</item>
</city>
<city>
<item>2</item>
</city>
<city>
<item>3</item>
</city>
<city>
<item>4</item>
</city>

и там же список тех кто выбран, для каждего юзера:

<user>
<check>
<item>1</item>
</check>
<check>
<item>3</item>
</check>
</user>

<user>
<check>
<item>2</item>
</check>
<check>
<item>4</item>
</check>
</user>

<user>
<check>
<item>3</item>
</check>
</user>

список всех чекбоксов выводится на одной странице для каждого юзера, где для каждого выбраны соответствующие юзеру, как??

FADE
04-07-2007, 17:38
я сделал шаблон user в котором находится for-each //city проблема в том что изза обращении к элементу city и написании двух слешов указатель уходит из самого шаблона user :( как его сравнивать с check/item ума не приложу..

Coutty
13-04-2008, 20:33
в XSL 2.0 не заработает »
Вот, у меня та же проблема. Если сделать как говорит vadimiron, то выводит просто тэги в виде текста.
Если написать так:
<xsl:for-each select="object">
<xsl:if test="(position() mod 2)=1">
<tr />
</xsl:if>
<td>разные там преобразования и прочее</td>
</xsl:for-each>

(в конце цикла </tr> не добавляю), то выводится таблица как надо - в два столбца, но ведь это неправильно!
Текст-то получается такой:
<tr />
<td>текст1</td>
<td>текст2</td>
<tr />
<td>текст3</td>
<td>текст4</td>
...


Или смириться с тем, что работает? :)

Преобразование на стороне клиента, т.ч. я не уверен, что выводится именно такой html.




© OSzone.net 2001-2012