На работе мне прислали интересную задачу создания PDF-файлов с помощью XSL. Структура XML Я работаю с подобенАтрибут обновления в XSL для каждого
<records>
<topLevel>
<topLevelID></topLevelID>
<secondLevel>
<secondLevelID></secondLevelID>
<thirdLevel>
</thirdLevel>
<thirdLevel>
</thirdLevel>
</secondLevel>
</topLevel>
<topLevel>
<topLevelID></topLevelID>
<secondLevel>
<secondLevelID></secondLevelID>
<thirdLevel>
</thirdLevel>
<thirdLevel>
</thirdLevel>
</secondLevel>
</topLevel>
</records>
я хотел бы попытаться дать более значимый пример XML, но я не чувствую, что приближается никаких юридических границ, которые могут существовать. С этой структурой XML я должен вывести блок текста в PDF для каждого узла thirdLevel
. XSL У меня есть до сих пор, как
<xsl:for-each select ="topLevel">
<xsl:variable name="topID" select="topLevelID"/>
<xsl:for-each select ="secondLevel">
<xsl:variable name="secondID" select="secondLevelID"/>
<xsl:for-each select="thirdLevel">
<fo:block-container position="absolute" height="12.8pt" width="220.8pt" left="160pt" display-align="auto">
<xsl:attribute name="top">
<xsl:value-of select="concat(193 + [whatshouldgohere]), 'pt')"/>
</xsl:attribute>
<fo:block font-size="7pt">
<xsl:call-template name="insertThirdLevel"/>
</fo:block>
</fo:block-container>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
В принципе, мне нужно добавить значение атрибута верхнего, чтобы сделать текст для каждого узла thirdLevel
появляется на отдельной строке. Я пробовал использовать комбинации добавления/умножения по ID (начинается с 1 и увеличивается на 1 для каждого набора) и position()
, но я не могу понять, что это правильно.
"CONCAT ((193 * позиция()), 'пт')" должен работать, как вы делали умножение? – annakata
Проблема, с которой я столкнулся, состоит в том, что у меня в основном есть три разные позиции, которые я мог бы использовать для трех разных уровней для каждого уровня. Кроме того, с учетом того, как данные изложены в XML, просто использование position(), кажется, заставляет текст выводить поверх другого текста время от времени. – bcasp