以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  菜鸟请问一个XQuery表达式的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=41126)


--  作者:superbaby
--  发布时间:12/12/2006 2:04:00 PM

--  菜鸟请问一个XQuery表达式的问题
<xsl:for-each select="/ds:EQPCompareInfo/ds:ECS_EQP_INFO">
  <xsl:sort select="./ds:EQP_ID"/>
  <xsl:sort select="./ds:REVISION"/>
  <Cell ss:StyleID="s{$SizeCellStyleID}">
    <Data ss:Type="String">
    <xsl:value-of select="/ds:EQPCompareInfo/ds:ECS_EQP_SIZE[ds:EQP_ID='AEOXFA02' and ds:REVISION=2][$SizeRowIndex]/ds:COMPONENT"/>
    </Data>
  </Cell>
</xsl:for-each>
各位请帮忙看一下这段代码,我的本意是想根据/ds:EQPCompareInfo/ds:ECS_EQP_INFO中的EQP_ID值从另一个节点/ds:EQPCompareInfo/ds:ECS_EQP_SIZE中选取EQP_ID值和REVISION值相同的节点集合的第$SizeRowIndex子节点的/ds:COMPONENT的值,但问题是这么些一直取到的是同一个值,请高手帮帮忙,感激不尽。
--  作者:superbaby
--  发布时间:12/12/2006 3:17:00 PM

--  
正解:
定义两个变量即可
<xsl:for-each select="/ds:EQPCompareInfo/ds:ECS_EQP_INFO">
  <xsl:sort select="./ds:EQP_ID"/>
  <xsl:sort select="./ds:REVISION"/>
  <xsl:variable name="EQP_ID" select="./ds:EQP_ID"/>
  <xsl:variable name="REVISION" select="./ds:REVISION"/>
  <Cell ss:StyleID="s{$SizeCellStyleID}">
    <Data ss:Type="String">
  <xsl:value-of select="/ds:EQPCompareInfo/ds:ECS_EQP_SIZE[ds:EQP_ID=$EQP_ID and ds:REVISION=$REVISION][$SizeRowIndex]/ds:COMPONENT"/>
    </Data>
  </Cell>
</xsl:for-each>
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms