LINUX.ORG.RU

XSLT + XML (XPath)


0

0

Привет всем!

Не понимаю в чем проблема.
Есть XML-файл, и XSLT файл. На выходе получаем XHTML.
Но проблема не в этом.

И так, кусок XML:

<product>
   <id>25</id>
   <category>200</category>
   <name>Молоко Белая жыдкость</name>
</product>

<category id_menu='s'>
   <id>200</id>
   <num>10</num>
   <name>Молоко</name>
   <count>4</count>
</category>

Нужно вытащить значение num если знаем значение id, вроде просто.
Применяю следующий XPath запрос:

<xsl:value-of select='//category[id="200"]/num' />

Это работает.
Но мне нужно подставить id в зависимости от того который он будет, то есть:

<xsl:template match='product'>
....
<xsl:value-of select='//category[id="{category}"]/num' />

а вот это уже не работает, хотя если написать 

<xsl:value-of select="category" />

то показывает номер category.

Не понимаю в чем проблема. Почему он не подставляет значение category?

Помогите кто чем может.

<xsl:value-of select='//category[id=//product/category]/num' />

Почему он должен был догадаться, что за {category} ты хочешь и из какой ноды?

zzandy
()
Ответ на: комментарий от zzandy

Еще тут допишу, может кому-то пригодится. Твой пример хорош если будет один product, а если их много с разными значениями, то выбираем так:

<xsl:value-of select='//category[id=current()/product]/num' />

Вот это у меня не сработало:

<xsl:value-of select='//category[id=./product]/num' />

EinsamerWolf
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.