LINUX.ORG.RU

Простой вопрос по XSLT


0

0

Сейчас на верхнем уровне есть 2 шаблона для одного и того же узла:

  <xsl:template match="/shim/hardware">
    ... code 1


  <xsl:template match="/shim/hardware">
    ... code 2

Если любой из них закомментировать, то оставшийся успешно отрабатывает.  Если же они присутствуют оба, то срабатывает только один (последний).  Как сделать чтобы срабатывали оба?

Я конечно могу слить их в один, но они концептуально отделены, поэтому хочу иметь их раздельно.
★★★★★

AFAIK нет, 
в http://www.w3.org/TR/xslt говорится

===================================
5.5 Conflict Resolution for Template Rules
...
It is an error if this leaves more than one matching template rule. An XSLT processor may signal the error; if it does not signal the error, it must recover by choosing, from amongst the matching template rules that are left, the one that occurs last in the stylesheet.
===================================

почему два "концептуально отдельных" шаблона матчат один и тот же тэг? 

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

> почему два "концептуально отдельных" шаблона матчат один и тот же тэг?

они извлекают-генерируют разные вещи из одних и тех же данных

dilmah ★★★★★
() автор топика
Ответ на: комментарий от dilmah

Ладно, я их слил.  Но как я понял можно сделать:

  <xsl:template match="/shim/hardware">
    <xsl:apply-templates select="." mode="one">
    <xsl:apply-templates select="." mode="two">
  </xsl:template>

и разнести код по разным модам.

dilmah ★★★★★
() автор топика
Ответ на: комментарий от dilmah

> Ладно, я их слил. Но как я понял можно сделать: <skipped> и разнести код по разным модам.

Именно это и является самым идеологически правильным вариантом.

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