Я пытаюсь создать список инвентаря (текст с разделителями табуляцией, для вывода) из данных XML. Суть в том, что мне нужно взять созданную мной строку и перечислить ее несколько раз (повторять ???), основываясь на числе, найденном в XML. Итак, из приведенного ниже XML:
<?xml version="1.0" encoding="UTF-8"?>
<library>
<aisle label="AA">
<row>bb</row>
<shelf>a</shelf>
<books>4</books>
</aisle>
<aisle label="BB">
<row>cc</row>
<shelf>d</shelf>
<books>3</books>
</aisle>
</library>
Мне нужно взять значение из "книг", а затем скопировать текстовую строку столько раз. Результат выглядит так:
Aisle Row Shelf Titles
AA bb a
AA bb a
AA bb a
AA bb a
BB cc d
BB cc d
BB cc d
Так что берущий инвентарь может потом написать в названиях, найденных на каждой полке. У меня есть базовая структура моего XSL, но я не уверен, как выполнить часть «итерации».
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" version="2.0">
<xsl:output omit-xml-declaration="yes"/>
<xsl:variable name="tab" select="'	'"/>
<xsl:variable name="newline" select="' '"/>
<xsl:template match="/">
<!-- Start Spreadsheet header -->
<xsl:text>Aisle</xsl:text>
<xsl:value-of select="$tab"/>
<xsl:text>Row</xsl:text>
<xsl:value-of select="$tab"/>
<xsl:text>Shelf</xsl:text>
<xsl:value-of select="$tab"/>
<xsl:text>Titles</xsl:text>
<xsl:value-of select="$newline"/>
<!-- End spreadsheet header -->
<!-- Start entering values from XML -->
<xsl:for-each select="library/aisle">
<xsl:value-of select="@label"/>
<xsl:value-of select="$tab"/>
<xsl:value-of select="row"/>
<xsl:value-of select="$tab"/>
<xsl:value-of select="shelf"/>
<xsl:value-of select="$tab"/>
<xsl:value-of select="$tab"/>
<xsl:value-of select="$newline"/>
</xsl:for-each>
<!-- End of values from XML -->
<!-- Iteration of the above needed, based on count value in "books" -->
</xsl:template>
</xsl:stylesheet>
Любая помощь будет принята с благодарностью. Для начала, является ли «итерация» правильным термином для этого?
Спасибо!