如何在xsl中包含xml中可选标记的元素

时间:2012-04-18 07:05:58

标签: xml xslt

这是我的xml。

   <Parent>
      <child>
         <child1>Ram</Child1>
         <child2>Buss</Child2>
      </child>
   </Parent>

对于这个xml,我需要和xsl文件一起生成子1和子2的名称。但是child 2标签是可选的。所以我只需要在标签出现时获取child2的文本内容,如果出现child2标签,我还必须在child1和child2的文本内容之间给出斜杠字符(/)。我如何在XSL中执行此操作?

1 个答案:

答案 0 :(得分:1)

这可能是最简单,最短的解决方案之一

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="child2">
     <xsl:value-of select="concat('/', .)"/>
 </xsl:template>
</xsl:stylesheet>

应用于提供的(文本,更正要制作的)XML文档

<Parent>
    <child>
        <child1>Ram</child1>
        <child2>Buss</child2>
    </child>
</Parent>

产生了想要的正确结果:

Ram/Buss

应用于此XML文档

<Parent>
    <child>
        <child1>Ram</child1>
    </child>
</Parent>

再次生成想要的结果

Ram