2

这是我拥有的xml。

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

对于这个 xml,我需要有一个 xsl 文件,以便生成孩子 1 和孩子 2 的名称。但是孩子 2 的标签是可选的。所以我只需要在标签出现时获取child2的文本内容,如果出现child2标签,我还必须在child1和child2的文本内容之间添加一个斜杠字符(/)。我如何在 XSL 中做到这一点?

4

1 回答 1

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
于 2012-04-18T12:42:44.387 回答