我正在创建一个XSL文件,该文件对XML文档进行了大量的查询XPath,并且我有一些字段,我必须计算这样的字段的总数,例如字段簿(已发布的书籍数)。
XML树的示例:
<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位作者),但每个作者行的表格中显示的数字总是相同的。
我做错了什么?
答案 0 :(得分:1)
更改
count(//ARTIGO-PUBLICADO)
到
count(.//ARTIGO-PUBLICADO)
如果您只想计算当前ARTIGO-PUBLICADO
上下文元素下的DADOS-AUTOR
元素,而不是计算整个文档中的所有ARTIGO-PUBLICADO
元素。