我是xslt的新蜜蜂,我不知道当一个节点更深一层时如何处理 比下图像的另一个节点。我想比较这两个值。
<xsl:variable name="CURRENT_HEADING_ID">
<xsl:if test="HEADING_ID[.!='']">
<xsl:value-of select="HEADING_ID" />
</xsl:if>
</xsl:variable>
<xsl:for-each select="HEADING_ROW[HEADING_ID = $CURRENT_HEADING_ID]">
do something
</xsl:for-each>
这里我无法描述整个图片,但如果我的Current_Heading_ID与HEADING_ID相匹配,那么我想继续使用这个其他的...
我的XML看起来像---
<HEADING_ROW Sort="1">
<HEADING_ID>10051</HEADING_ID>
<HEADING_NAME>HEADING 1</HEADING_NAME>
<HEADING_DESCRIPTION/>
</HEADING_ROW>
<HEADING_ROW Sort="2">
<HEADING_ID>10050</HEADING_ID>
<HEADING_NAME>HEADING 2</HEADING_NAME>
<HEADING_DESCRIPTION>HEADING 2 Descp</HEADING_DESCRIPTION>
</HEADING_ROW>
我知道这是一个非常愚蠢的问题,但我很匆忙并坚持这个问题。任何帮助将不胜感激。
此致
答案 0 :(得分:0)
这是因为您当前定位在 HEADING_ROW 元素上,并希望获得具有相同HEADING_ID的其他 HEADING_ROW 元素吗?
如果是这样,试试这个
<xsl:for-each select="following-sibling::HEADING_ROW[HEADING_ID = $CURRENT_HEADING_ID]">
或许这个(这会得到所有兄弟姐妹,但也会得到当前的HEADING_ROW)
<xsl:for-each select="../HEADING_ROW[HEADING_ID = $CURRENT_HEADING_ID]">