2016-12-01 5 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

Вы добавляете новый элемент для каждого цикла вместо этого вы должны добавить элемент только один раз, как следует,

Поскольку мы не имеем никакого 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> 
Смежные вопросы