如何检查指定路径中是否存在节点?例如,我有这个 xml:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<bookgroup name="group1">
<book name="BookName1"/>
<book name="BookName2"/>
<book name="BookName3"/>
<book name="BookName4"/>
<book name="BookName5"/>
</bookgroup>
<bookgroup name="group2">
<book name="BookName6"/>
<book name="BookName7"/>
</bookgroup>
<selected>
<book name="BookName2"/>
<book name="BookName3"/>
</selected>
</books>
由于子节点:BookName2 和 BookName 3 存在于选定的标记中,因此期望输出返回 true,而返回 false,因为其子节点都不在选定的标记中。
这是我尝试过的:
<xsl:template name="IsChildExist">
<xsl:param name="bookGroupName"/>
<xsl:variable name="isExist">
<xsl:for-each select="//bookgoup[@NAME=$bookGroupName]/book">
<xsl:variable name="childNode" select="./@name"/>
<xsl:choose>
<xsl:when test="count(//selected/book[@name=$childNode])>0">
<xsl:value-of select="true()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="false()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="$isExist"/>
</xsl:template>
但是仍然在 for-each 循环中的中断上战斗。
先感谢您。