Почему xslt создает новую таблицу, но не использует таблицу - PullRequest
0 голосов
/ 02 февраля 2009

У меня есть такой xml-файл

<Root>
 ...
 <x></x>
 <node>
  ...
  <x></x>
  <y></y>
 </node>
</Root>

Мой xslt

<xsl:template match="/">
 <!-- proceed the treatment of the statement before x-->
 <tr>
  <xsl:apply-templates match="Root/x"/>
 </tr>
 <tr>
  <xsl:apply-templates match="Root"/>
 </tr>
</xsl:template>

<xsl:template match="x">
  ...
</xsl:template match="x">

<xsl:template match="Root">
 <!--Proceed the treatment of the statement before x-->
 <tr>
  <xsl:apply-templates match="x"/>
 </tr>
 <!--Deal with y-->

Шаблон, который соответствует "/", создаст таблицу и заполнит ее всеми узлами в XML-файле. x может появляться в каждом элементе, как «узел», и может каждый раз отличаться. «узел» также может появляться несколько раз с разным контентом.

Но когда я использую этот xslt, после работы с x он создает новую таблицу для элементов после x, поэтому узел будет в новой таблице, а также для y.

Кто-нибудь знает, как это сделать? Спасибо

Ответы [ 2 ]

1 голос
/ 02 февраля 2009

Похоже, что вы обрабатываете что-то в своем шаблоне "/", а затем снова обрабатываете все это в шаблоне "Root", поскольку шаблон "/" также явно применяет шаблон Root.

Попробуйте удалить определение шаблона "/" и просто выполните всю работу в шаблоне для "Root"

0 голосов
/ 02 февраля 2009

до диво,

match = "x" шаблон имеет дело с дочерними элементами "x". Извините за неправильное понимание, я просто проигнорировал код для создания таблицы. Таблица создается в шаблоне match = "/". Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...