如何在xml中为可选标签包含元素

问题描述:

这是我拥有的xml。如何在xml中为可选标签包含元素

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

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

+0

所以,你要生产: “Child1/CHILD2” 或“Ram/Buss”?在这个问题上,你似乎要求这两个...... – 2012-04-18 12:42:10

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

<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