不处理没有子元素的元素

  • 本文关键字:元素 处理 xslt xslt-1.0
  • 更新时间 :
  • 英文 :


通常标记包含XML,而\XML在我的情况下,某些节点包含XML/。

这是我的XML:

<NTC_LIGHTLISTPRODUCT>
    <RACON>
        <RACON_CATEGORY>Racon</RACON_CATEGORY>
        <RACON_GROUP>Mo(M)</RACON_GROUP>
        <RACON_PERIOD>30s</RACON_PERIOD>
        <RACON_RANGE>10M</RACON_RANGE>
        <RACON_WAVE_LENGTH>0.03-X,0.10-S</RACON_WAVE_LENGTH>
    </RACON>
</NTC_LIGHTLISTPRODUCT>
<NTC_LIGHTLISTPRODUCT>
    <RACON/>  <-- This is the problem -->
</NTC_LIGHTLISTPRODUCT>

这是我的xslt 1.0:

<xsl:for-each select="NTC_LIGHTLISTPRODUCT">
    <xsl:for-each select="RACON">
    CIAO
        <xsl:for-each select="RACON_GROUP">
            <xsl:value-of select="."/>
        </xsl:for-each>
        <xsl:for-each select="RACON_PERIOD">
            <xsl:value-of select="."/>
        </xsl:for-each>
        <xsl:for-each select="RACON_RANGE">
            <xsl:value-of select="."/>
        </xsl:for-each>
    </xsl:for-each>
</xsl:for-each>

这是输出:

ciao Mo(M)30s10M
ciao

我希望如果包含RACON/什么都不写。我希望这个过程只为结构RACON运行/RACON,不适用于RACON/。

我认为您所说的是,您不希望处理没有子级的RACON元素。在这种情况下,将xsl:for-each更改为:

<xsl:for-each select="RACON[*]">

或者,您可以更具体一点,检查它是否至少包含一个要输出的子元素。例如:

<xsl:for-each select="RACON[RACON_GROUP or RACON_PERIOD or RACON_RANGE]">

如果你想更进一步,你可以检查至少一个子元素中至少有一些文本

<xsl:for-each select="RACON[normalize-space(RACON_GROUP) or normalize-space(RACON_PERIOD) or normalize-space(RACON_RANGE)]">

相关内容

  • 没有找到相关文章

最新更新