Я использую XSLT для генерации строк, столбцов и содержимого из файла конфигурации.У меня есть настройки строк / столбцов / содержимого конфигурации, но я не могу понять, как заставить XSLT повторять строки и столбцы, чтобы соответствовать моему ожидаемому выводу HTML.Это только тянет первый экземпляр каждой строки / Col / Box.Я знаю, что есть параметры, которые нужно передать, чтобы они повторялись правильно, но я не понимаю, как их правильно использовать.
XSLT-файл:
<xsl:template match="/XmlPages">
<xsl:for-each select="/XmlPages/Page[@RouteUrl=$RouteUrl]">
<xsl:apply-templates />
</xsl:for-each>
</xsl:template>
<xsl:template match="Row">
<div class="row content-row">
<xsl:apply-templates select="Col" />
</div>
</xsl:template>
<xsl:template match="Col">
<div class="col-{@colSize} content-col">
<xsl:apply-templates select="Box" />
</div>
</xsl:template>
<xsl:template match="Box">
<div class="content-box {@boxBg}-bg" data-url="{@fileUrl}"></div>
</xsl:template>
Файл конфигурации:
<Page Name="testPage" RouteUrl="/testPage">
<Row>
<Col colSize="3">
<Row>
<Col colSize="12">
<Box boxBg="clear" fileUrl="/content/test-1.html"></Box>
</Col>
</Row>
<Row>
<Col colSize="12">
<Box fileUrl="/content/test-2.html"></Box>
</Col>
</Row>
<Row>
<Col colSize="12">
<Box fileUrl="/content/test-3.html"></Box>
</Col>
</Row>
</Col>
<Col colSize="9">
<Row>
<Col colSize="9">
<Box fileUrl="/content/test-4.html"></Box>
</Col>
<Col colSize="3">
<Row>
<Col colSize="12">
<Box boxBg="color" fileUrl="/content/test-5.html"></Box>
</Col>
</Row>
<Row>
<Col colSize="12">
<Box boxBg="color" fileUrl="/content/test-6.html"></Box>
</Col>
</Row>
</Col>
</Row>
<Row>
<Col colSize="12">
<Box fileUrl="/content/test-7.html"></Box>
</Col>
</Row>
</Col>
</Row>
</Page>
Желаемый результат HTML:
<div class="row content-row">
<div class="col-3 content-col">
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box clear-bg">
</div>
</div>
</div>
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box">
</div>
</div>
</div>
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box">
</div>
</div>
</div>
</div>
<div class="col-9 content-col">
<div class="row content-row">
<div class="col-9 content-col">
<div class="content-box">
</div>
</div>
<div class="col-3 content-col">
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box color-bg">
</div>
</div>
</div>
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box color-bg">
</div>
</div>
</div>
</div>
</div>
<div class="row content-row">
<div class="col-12 content-col">
<div class="content-box">
</div>
</div>
</div>
</div>
</div>