0

次の XML を変換する xslt を書きたいと思います。

<instruments>
<instrument>1111-A01</instrument>
<instrument>1111-A02</instrument>
<instrument>2222-A03</instrument>
<instrument>2222-A04</instrument>
</instruments>

次の XML に:

<references>
<reference>
    <id_celex>1111</id_celex>
    <article>A01</article>
    <article>A02</article>
</reference>
<reference>
    <id_celex>2222</id_celex>
    <article>A03</article>
    <article>A04</article>
</reference>
</references>

したがって、 id_celexarticleを取得するには、各楽器を「-」で分割する必要があります。次に、一意のid_celexごとに、 id_celexとその記事の参照を作成する必要があります。

私は昨日 xslt を開始しましたが、すでに立ち往生しています :p

前もって感謝します!

数行ありますが、機能していないため、表示するのに役立つかどうかわかりません...

4

1 に答える 1

0

見てください:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

  <xsl:template match="instruments">
    <references>
      <xsl:for-each-group select="instrument" group-by="substring-before(text(),'-')">
        <reference>
          <id_celex>
            <xsl:value-of select="current-grouping-key()"/>
          </id_celex>
          <xsl:for-each select="current-group()">
            <article>
              <xsl:value-of select="substring-after(text(),'-')"/>
            </article>
          </xsl:for-each>
        </reference>
      </xsl:for-each-group>
    </references>
  </xsl:template>
</xsl:stylesheet>
于 2013-05-07T13:10:47.050 に答える