2016-12-01 6 views
-1

XSLTを初めて使用しています。誰も私の希望の出力を得るのを助けることができますか?xsltの要素でない値を繰り返す方法

私のコード

<xsl:for-each 
       select="/path-to-element-in-xpath"> 
       <xsl:element name="element_name"> 
         <xsl:attribute name="Type">text</xsl:attribute> 
         <xsl:attribute name="Value"> 
         <xsl:value-of select="element_name/@displayValue"></xsl:value-of> 
      </xsl:attribute> 
       </xsl:element> 
      </xsl:for-each> 

実際の出力

<element_name Type="text" Value="element_name_1"/> 
     <element_name Type="text" Value="element_name_2"/> 
     <element_name Type="text" Value="element_name_3"/> 
     <element_name Type="text" Value="element_name_4"/> 
     <element_name Type="text" Value="element_name_5"/> 

予想される出力

<gl_coveragename Type="text" Value="element_name_1, element_name_2, element_name_3, element_name_4, element_name_5"/> 

追加:値の重複を排除する必要性に役立ちます。

+0

は私達にあなたのXMLを表示し、あなたがこれまでに試したものは何でもXSL – ScanQR

答えて

0

あなたは、次の1であると仮定され、

は、我々は問題の任意のXMLを持っていないとして、次のように一度だけの要素を追加する必要があります代わりに、各ループのために新しい要素を追加している

<data> 
    <Element11 displayValue="First"> 
     <key>73004</key> 
     <number>001001</number> 
    </Element11> 
    <Element11 displayValue="Second"> 
     <key>7300465</key> 
     <number>002001</number> 
    </Element11> 
    <Element11 displayValue="Third"> 
     <key>730046</key> 
     <number>003001</number> 
    </Element11> 
</data> 
追加すべき

XSLテンプレート、

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:ns1="http://locomotive/bypass/docx" > 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="data"> 
    <xsl:element name="element_name"> 
     <xsl:attribute name="Type">text</xsl:attribute> 
     <xsl:attribute name="Value">  
     <xsl:for-each select="Element11"> 
      <xsl:value-of select="@displayValue"/> 
      <xsl:text> </xsl:text>     
     </xsl:for-each> 
    </xsl:attribute> 
    </xsl:element> 
</xsl:template> 

</xsl:stylesheet> 
関連する問題