2015-02-05 83 views
0

我創建了一個查詢XPath到一個XML文檔的XSL文件,並且我有一些字段,例如字段簿(發佈的書籍數量),我必須計算這些字段的總數。在XML樹爲什麼XPath count()總是返回相同的值?

例子:

<DADOS-AUTOR NOME="Rui Carlos Correia" ID="267"> 
    <PRODUCAO-BIBLIOGRAFICA> 
     <TRABALHOS-EM-EVENTOS> 
      <TRABALHO-EM-EVENTOS....... 
     <ARTIGOS-PUBLICADOS> 
      <ARTIGO-PUBLICADO.......... 

我有這個XSL文件:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:template match="/"> 
    <HTML> 
     <BODY> 
     <H1>Lista de Autores</H1> 
     <TABLE border="1"> 
      <TR> 
      <TD><B>Nome do Autor</B></TD> 
      <TD><B>ID do Autorr</B></TD> 
      <TD><B>Publicações de Artigos</B></TD> 
      </TR> 
      <xsl:for-each select="//DADOS-AUTOR"> 
      <TR> 
       <TD><xsl:value-of select="@NOME"/></TD> 
       <TD><xsl:value-of select="@ID"/></TD> 
       <TD><xsl:value-of select="count(//ARTIGO-PUBLICADO)"/></TD> 
      </TR> 
      </xsl:for-each> 
     </TABLE> 
     </BODY> 
    </HTML> 
    </xsl:template> 
</xsl:stylesheet> 

的問題是,該功能計數必須返回的所有作者的物品的總數(我有總共大約20位作者),但每個作者的表格中出現的數字總是相同的。

我在做什麼錯?

+1

請發佈足夠的代碼(XML + XSLT)以使我們能夠重現此問題。 – 2015-02-05 17:36:52

回答

1

變化

count(//ARTIGO-PUBLICADO) 

count(.//ARTIGO-PUBLICADO) 
如果你想只計算當前 DADOS-AUTOR上下文元素下的 ARTIGO-PUBLICADO元素,而不是計算整個文檔中的所有元素 ARTIGO-PUBLICADO

+0

謝謝,我已經改變了計數(.//ARTIGO-PUBLICADO)的計數功能,但現在在該字段中顯示爲0。探索所有的XML文件的作者「銳卡洛斯Correia」有3篇文章,例如下一個作者「大衛Filipe Gouveia」有6篇文章...但這個函數返回0. – satbr 2015-02-05 17:18:56

+0

你將不得不遵循@ michael .hor257k並編輯您的問題以包含顯示問題的[** Minimal,Complete,and Verifiable Example(MCVE)**](http://stackoverflow.com/help/mcve)。謝謝。 – kjhughes 2015-02-05 23:06:32

相關問題