0

我需要在 dublincore xml 上应用 xsl 来转换

<dc:description> blahblah </dc:description>

在类似的东西:

<descriptions>
 <description descriptionType="Abstract"> blahblah </description>
</descriptions>

我正在测试这个,但如果元素是空的,我不想显示任何东西,而不是<descriptions/>

你应该如何纠正这个?

       <xsl:if test="dc:description">
            <descriptions>
                <xsl:for-each select="dc:description">
                <xsl:variable name="description" select="."/>
                <xsl:if test="$description !=''">
                    <description descriptionType="Abstract">
                        <xsl:value-of select="."/>
                    </description>
                </xsl:if>
                </xsl:for-each>
            </descriptions>
        </xsl:if>
4

1 回答 1

0
<xsl:if test="dc:description/text()">

只有当至少有一个 non-empty 时才应该是 true dc:description。或者重复使用你在内部 if 中所做的相同测试并说

<xsl:if test="dc:description != ''">

如果集合中的任何节点的值是另一侧,则一侧是节点集的!=测试成功(这就是为什么规范中的注释不一定与x 和 y 中的一个或两个相同的原因节点集)。!=x != ynot(x = y)

于 2012-10-24T15:47:22.800 回答