以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  計算xslt特定條件下節點的個數,有難度  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=84195)


--  作者:cbbs
--  发布时间:4/8/2010 11:50:00 AM

--  計算xslt特定條件下節點的個數,有難度
有這樣一個xslt文件,
<B>
    <xsl:choose>
      <xsl:when test="not(/ISF/DirectBills/DirectBill/DirectBillNumber)">
        <!-- count this -->
        <SF1>a</SF1>
      </xsl:when>
      <xsl:otherwise>
        <xsl:for-each select="/ISF/HouseBills/HouseBill">
          <!-- count this -->
          <SF1>b</SF1>
        </xsl:for-each>
        <xsl:if test="/ISF/MasterBills/MasterBill/MasterBillNumber">
          <!-- count this -->
          <SF1>c</SF1>
        </xsl:if>
      </xsl:otherwise>
    </xsl:choose>
    <xsl:if test="/ISF/BondNumber">
      <!-- count this -->
      <SF1>d</SF1>
    </xsl:if>
    <!-- count this -->
    <SF3>e</SF3>
    <!-- count this -->
    <SF3>f</SF3>
    <xsl:if test="/ISF/UserDefineRefNo">
      <SF4>g</SF4>
    </xsl:if>
    <SF5>h</SF5>
    <SF1>k</SF1>
    <xsl:if test="/ISF/UserDefineRefNo">
      <SF1>j</SF1>
    </xsl:if>
    </B>

,
統計有<!-- count this -->這個注釋的SF開頭節點個數,請問怎樣計算,最好用xslt等xml方面來解決.謝謝!


--  作者:Qr
--  发布时间:4/8/2010 1:55:00 PM

--  
<xsl:value-of select="count(descendant-or-self::*)"/>
--  作者:Qr
--  发布时间:4/8/2010 1:56:00 PM

--  
当前元素及它们的后代元素:descendant-or-self::*
XPath
--  作者:cbbs
--  发布时间:4/9/2010 12:03:00 PM

--  
謝謝QR,不過,這是統計xslt本身的節點個數,不是XML的,節點出現還是有條件的
--  作者:Qr
--  发布时间:4/10/2010 11:58:00 AM

--  
SORRY,没注意到是XSL中SF開頭節點。
如果节点名确定还好办,但“SF开头”这种不确定的节点就不好办了,或者说根本就没办法。
--  作者:Qr
--  发布时间:4/10/2010 12:08:00 PM

--  
引用XSL自身节点数据,可以考虑用方法document()
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,375.977ms