Xpoint
   [напомнить пароль]

Разбиение строк (split), небольшая проблемка

Метки: [без меток]
2008-12-01 09:46:45 [обр] walek[досье]

Доброго дня друзья!
Пользуясь материалом по разбиению строк Разбиение строк (split) задача решилась, но отчасти.
Возникли 2 трудности.

1 трудность.
Имею XML

<rss>
 <channel>
  <path>Текст1; Текст2; Текст3;</path>
  <url>1.asp;2.asp;3.asp;</url>
 </channel>
</rss>

в основном шаблоне вызываю шаблон <xsl:call-template name="path" />

В шаблоне path имею такой XSL:

<?xml version="1.0" encoding="WINDOWS-1251"?>
<xsl:stylesheet version="1.0"
 exclude-result-prefixes="xsl"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:import href="split.xsl" />
<xsl:output method="xml" indent="yes"/>
<xsl:template match="PathMenuTitle" name="path">
 <ul>
  <xsl:apply-templates select="text()" mode="split">
   <xsl:with-param name="worddiv" select="';'"/>
  </xsl:apply-templates>
 </ul>
 <xsl:apply-templates select="PathMenuTitle" />
</xsl:template>
</xsl:stylesheet>

Ны выходе имею

<ul>
</ul>
<ul>
<li>Текст1</li>
<li>Текст2</li>
<li>Текст3</li>
<li></li>
</ul>

Выходной HTML не радует. Но где ошибка, не могу понять.

2 трудность.
Т.к. в XML имеет узел <url>1.asp;2.asp;3.asp;</url> необходимо к Текстам 1,2,3 привязать соответствующие ссылки из узла <url>
Но как это сделать, совсем не знаю ...

Может кто-нибудь помочь?

Спасибо!

спустя 4 минуты [обр] walek[досье]
Прошу прощения, ошибка в шалоне path:
вместо <xsl:apply-templates select="PathMenuTitle" /> нужно понимать <xsl:apply-templates select="path" />
спустя 4 часа [обр] Илья Cтpeльцын aka SelenIT(0/171)[досье]
Так ведь там же в конце разбираемой строки тоже точка с запятой стоит. Неудивительно, что после split-а на выходе появляется лишний пустой фрагмент. Сходу просится решение "в лоб" — добавить xsl:if на пустоту перед xsl:apply-templates, но подозреваю что настоящие знатоки предложат выход проще.
спустя 8 дней [обр] walek[досье]
Проблема с исходными данными не решилась, пришлось изменять их.
Спасибо.
Powered by POEM™ Engine Copyright © 2002-2005