2013-05-07 65 views
0

我想編寫XSLT以下XML變換:XSLT 2.0 build元素動態

<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_celex文章。 然後對於每個獨特的id_celex我需要創建一個參考id_celex及其文章 s。

昨天我開始XSLT和我已經堅持:對

預先感謝您!

我有幾行但它不工作,我不知道這是否是有用的,以顯示它...

+0

如果你的XSLT包括** XSL :for-each-group **指令,那麼是的,這將是有用的顯示! – 2013-05-07 13:11:42

回答

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> 
+0

Whaw!非常感謝你。我不知道for-each-group功能。我會盡力瞭解你現在的代碼:) – 2013-05-07 13:56:07