В коде много переменных, но за счет них он работает в IE.
<xsl:variable name="totalItems"><xsl:value-of select="count(//list/item)"/></xsl:variable>
<xsl:variable name="totalItemsHalf"><xsl:value-of select="$totalItems div 2"/></xsl:variable>
насчет node() я писал немного выше - я не утверждаю, что так и надо. Просто мне пока так удобнее читать: выбираем корневой узел.
Про <xsl:variable name="current-section" select="/*/@id" /> я постараюсь поговорить позже. Это действительно удобнее. Просто, нужно будет еще объяснить переменные XSL.
Насчет ul id="main-menu" - эта конструкция более валидная, чем <menu>
Странно. Попробуйте зайти на http://parser.proc.ru/forum/ (там все на XSLT)
Я оперой давно не пользуюсь, поэтому скатать четко не могу, но проблем быть не должно.
Можно. Попробую. Но будут проблемы, если мне нужно вставлять что-то вроде:
184209, Мурманская обл., г. Апатиты, ул.Такаято,
<br />
<a href="mailto:mail@domen.ru"><a href="mailto:mail@domen.ru">mail@domen.ru</a></a>
Насчет вызова разных таблиц - напишу в следующей статье. Там много тонкостей.
В настоящее время у меня для разных языков используются специальные xsl-таблицы. С ними проще работать чем с DTD. Кроме того, я сейчас пытаюсь перевести все на динамические XSL-шаблоны, которые формируются индивидуально для каждого пользователя.
Иначе получиться очередной холивар. Всегда должен быть выбор. Я свой сделал. Однако, я не собираюсь никого убеждать в оптимальности своего выбора. Просто он такой.
По тем же причинам я использую
- Parser, а не PHP
- Xara, а не Corel или Illustrator.
... список можно продолжать дальше.
В шаблоне все пути прописаны от корня (делал на основе шаблона работающего на реальном сайте) поэтому либо перепишите их на относительные либо запускайте из под Apache.
В архиве входной XML-документ лежит в /xsl/document.xml
Меня волнует, насколько эта библиотека совместима с разными браузерами и разными Framework-ами: как показала практика, многие "расширения" глючат при совместном их использовании вместе с jQuery и д.р.
Я определяю "ответственного" еще на уровне брифинга. У меня сейчас сложилась именно та ситуация, которая определяет важность этого момента: директор школы, для которой я делал сайт (который уже готов) только спустя три месяца после утверждения макета решил на него взглянуть и "ужаснулся", что-же ему "подсунули". Что выбрал ответственный - то и подсунули. Когда она ко мне подошла с претензиями я ей прямо сказал, что по нашему договору ее претензии и выеденного яйца не стоят.
Для рабочих проектов можно использовать все средства XSLT. В этом случае код уменьшается в разы и легче читается.
Я не говорю, что нужно использовать трансформацию на клиенте. Для этого пока нет достаточной поддержки со стороны браузеров.
<xsl:variable name="totalItems"><xsl:value-of select="count(//list/item)"/></xsl:variable>
<xsl:variable name="totalItemsHalf"><xsl:value-of select="$totalItems div 2"/></xsl:variable>
<xsl:template match="//document">
<html>
<body>
<table border="1">
<xsl:apply-templates select="//list/item" mode="list"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="item" mode="list">
<xsl:variable name="cur">
<xsl:value-of select="position()"/>
</xsl:variable>
<xsl:variable name="next">
<xsl:value-of select="$totalItemsHalf + $cur"/>
</xsl:variable>
<tr>
<xsl:choose>
<xsl:when test="position() > $totalItems div 2"></xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="text()"/></td>
<td><xsl:value-of select="parent::*/item[position() = $next]/text()"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:template>
А так, если использовать CGI-склеивание XML с XSL то код получиться короче
Про
<xsl:variable name="current-section" select="/*/@id" />я постараюсь поговорить позже. Это действительно удобнее. Просто, нужно будет еще объяснить переменные XSL.Насчет ul id="main-menu" - эта конструкция более валидная, чем
<menu>Мне хватило недели, чтобы разобраться.
Я оперой давно не пользуюсь, поэтому скатать четко не могу, но проблем быть не должно.
184209, Мурманская обл., г. Апатиты, ул.Такаято,
<br />
<a href="mailto:mail@domen.ru"><a href="mailto:mail@domen.ru">mail@domen.ru</a></a>
Насчет вызова разных таблиц - напишу в следующей статье. Там много тонкостей.
//document я указал, т.к. /document подглючивал у меня сегодня в IE.
Насчет // - согласен.
По тем же причинам я использую
- Parser, а не PHP
- Xara, а не Corel или Illustrator.
... список можно продолжать дальше.
http://parser.proc.ru/iso/xslt-1.zip
В шаблоне все пути прописаны от корня (делал на основе шаблона работающего на реальном сайте) поэтому либо перепишите их на относительные либо запускайте из под Apache.
В архиве входной XML-документ лежит в /xsl/document.xml
Правда, блин, тормазной эффект, все-таки