Проблемы xslt for-each apply-templates - PullRequest
0 голосов
/ 11 ноября 2010
<xsl:for-each select="c:richBody">
        <xsl:if test="position()=1">
          <div style="height:50px;" />
        </xsl:if>
        <xsl:apply-templates />
</xsl:for-each>

У меня есть код, описанный выше, и мне нужно что-то сделать между первым элементом c: richBody и вторым элементом c: richBody. Похоже, что когда он начинает применять шаблоны, он просто проходит через все из них, а затем идет вниз по документу. С тем, что у меня выше, высота 50 делится над всеми шаблонами apply.

Есть ли способ сделать что-то среднее между элементами, к которым применены шаблоны применения?

Ответы [ 2 ]

0 голосов
/ 11 ноября 2010

В качестве предположения я бы сказал, что вы хотите

<xsl:if test="position()>1">

, который даст вам деление между всеми тегами c:richBody.

0 голосов
/ 11 ноября 2010

Я полагаю, что ваша проблема в том, что вы думаете «С», где первый элемент имеет позицию () = 0;второй имеет позицию () = 1 ...

Однако для XSLT вы должны думать как здравомыслящий человек.Первый элемент имеет position () = 1. Чтобы вставить ваш div перед вторым элементом, ваш тест должен быть следующим, если test = "position () = 2"

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