как создать само инклюзивное число в xsl: если - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть проблема, мне нужно проверить, существует ли поле, и если его нет, мне нужно увеличить число внутри, если, например:

....
<xsl:for-each select="InvoiceItem/InvoiceItemGroup/ItemEntry/Accounting/JournalEntry/CostObjective">
<xsl:if test="not(DIM06)">
<xsl:value-of select="value of number ++"/>
</xsl:if>
</xsl:for-each>
....

Проблема в том, что position() нетработать таким образом.Потому что в результате я получаю: 1,2,4,5 ... Вместо этого мне нужно 1,2,3,4.

Надеюсь, вы понимаете, что мне нужно, и надеюсь, что вы поможете мне найтирешение.

1 Ответ

0 голосов
/ 21 февраля 2019

position() основан на положении узла в списке выбранных узлов, а не на положении в исходном дереве документа.

Предполагается, что вы не хотите ничего делать с элементами безDIM06, вам нужно вместо этого сделать условие частью xsl:for-each, чтобы в первую очередь были выбраны только эти узлы

<xsl:for-each select="InvoiceItem/InvoiceItemGroup/ItemEntry/Accounting/JournalEntry/CostObjective[not(DIM06)]">
  <xsl:value-of select="position()"/>
</xsl:for-each>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...