XSL格式不正确

时间:2014-06-30 12:06:34

标签: xml xslt

我有这个XSL:

    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">                      
    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
    <xsl:strip-space elements="*"/>
    <xsl:template match="Firma">
       <SeznamFaktVyd>
          <FaktVyd>
             <Doklad>
                <xsl:value-of select="faktura/@ID_FAKTURA_VYDANA" />
             </Doklad>        
             <Vystaveno>
                <xsl:value-of select="faktura/@DATUM_VYSTAVENI" />
             </Vystaveno>
          </FaktVyd> 
       </SeznamFaktVyd>
   </xsl:template>   
   </xsl:stylesheet>

我有这个XML输出:

<SeznamFaktVyd>
   <FaktVyd>
      <Doklad>1</Doklad>
      <Vystaveno>1.1.2014</Vystaveno>
   </FaktVyd>
</SeznamFaktVyd>
<SeznamFaktVyd>
   <FaktVyd>
      <Doklad>2</Doklad>
      <Vystaveno>1.2.2014</Vystaveno>
   </FaktVyd>
</SeznamFaktVyd>

我想要这个输出XML:

<SeznamFaktVyd>
   <FaktVyd>
      <Doklad>1</Doklad>
      <Vystaveno>1.1.2014</Vystaveno>
   </FaktVyd>
   <FaktVyd>
      <Doklad>2</Doklad>
      <Vystaveno>1.2.2014</Vystaveno>
   </FaktVyd>
</SeznamFaktVyd>

我希望-SeznamFaktVyd-只有一次ind文档和 - / SeznamFaktVyd-只有一次... 请问有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

xml中有超过1个<Firma>节点,因此如果您匹配“Firma”,最终会有多个<SeznamFaktVyd>个节点。要在1个根节点内将它们组合在一起,请添加一个从根开始的模板,并从那里应用<Firma>的模板:

<xsl:template match="/">
    <SeznamFaktVyd>
        <xsl:apply-templates select="Firma"/>
    </SeznamFaktVyd>
</xsl:template>
<xsl:template match="Firma">
    <FaktVyd>
        <Doklad>
            <xsl:value-of select="faktura/@ID_FAKTURA_VYDANA" />
        </Doklad>        
        <Vystaveno>
            <xsl:value-of select="faktura/@DATUM_VYSTAVENI" />
        </Vystaveno>
    </FaktVyd> 
    ...
相关问题