【问题标题】:How do I include elements in xsl for optional tags in xml如何在 xsl 中为 xml 中的可选标签包含元素
【发布时间】:2012-04-18 07:05:58
【问题描述】:

这是我拥有的 xml。

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

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

【问题讨论】:

  • 那么,您要生产:“Child1/Child2”还是“Ram/Buss”?在这个问题中,您似乎要求这两个...

标签: xml xslt


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2012-07-04
    • 1970-01-01
    • 2023-02-08
    • 1970-01-01
    相关资源
    最近更新 更多