Как повторить элементы в XSLT - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь выполнить XSLT для генерации листа Excel в формате XML.

Входной XML

     <financials-as-of>10/22/2018</financials-as-of>
  <nobs>
    <nob>
      <label-nob>NOB 71</label-nob>
    </nob>
    <nob>
      <label-nob>NOB 70</label-nob>
    </nob>
  </nobs>

Ожидаемый вывод

 <Cell ss:MergeDown="0">
          <Data ss:Type="String">NOB 71</Data>
          <NamedCell ss:Name="LABEL_NOB">
          </NamedCell>
        </Cell>
 <Cell ss:MergeDown="0">
          <Data ss:Type="String">NOB 70</Data>
          <NamedCell ss:Name="LABEL_NOB">
          </NamedCell>
        </Cell>

XSLT

<xslo:template match="d:nob">

            <xsl:for-each select="//ss:Cell[ss:NamedCell/@ss:Name='LABEL_NOB'][1]">
                <!-- Copy the Row element -->
                <xslo:value-of select="d:label-nob"/>
            </xsl:for-each>
        </xslo:template>

Я повторяю значение Cell два раза, если входной xml содержит два элемента.

1 Ответ

0 голосов
/ 23 октября 2018

После того, как XSL помог мне получить ожидаемый XML

<xsl:template match="/">
    <xsl:template>
            <Cells>
                <xsl:for-each select="data/nobs/nob">
                    <Cell MergeDown="0">
                        <Data Type="String">
                            <xsl:value-of select="label-nob" />
                        </Data>
                        <NamedCell Name="LABEL_NOB" />
                    </Cell>
                </xsl:for-each>
            </Cells>
    </xsl:template>
</xsl:template>

для следующего XML,

 <data>
    <financials-as-of>10/22/2018</financials-as-of>
    <nobs>
        <nob>
            <label-nob>NOB 71</label-nob>
        </nob>
        <nob>
            <label-nob>NOB 70</label-nob>
        </nob>
    </nobs>
</data>

Надеюсь, вы получили ожидаемый ответ Thks

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