我需要找到所有的书,如果这本书有不止一个作者,写第一作者的名字和那个名字后面的“et al”。下面是我的代码和第一本书用“JK Rowling et al”打印,但它不起作用为第二本书。
这是xml代码
<bookstore>
<book>
<title category="fiction">Harry Potter</title>
<author>J. K. Rowling</author>
<author>sxdgfds</author>
<publisher>Bloomsbury</publisher>
<year>2005</year>
<price>29.99</price>
</book>
<book>
<title category="fiction">The Vampire Diaries</title>
<author>L.J. Smith</author>
<author>sdgsdgsdgdsg</author>
<publisher>Bloomsbury</publisher>
<year>2004</year>
<price>25.99</price>
</book>
<book>
<title category="fiction">The DaVinci Code</title>
<author>Dan Brown</author>
<publisher>Bloomsbury</publisher>
<year>2002</year>
<price>35.99</price>
</book>
这是 xslt 代码
<xsl:for-each select="//book[30 >price]">
<xsl:if test="title[@category='fiction']">
<span style="color:blue;font-weight:bold"><xsl:value-of select="title"/></span><br />
<xsl:choose>
<xsl:when test="count(./author)>1">
<span style="color:red;font-style:italic"><xsl:value-of select="author"/></span>
<span style="color:red;font-style:italic"> et al</span><br />
</xsl:when>
<xsl:otherwise>
<span style="color:red;font-style:italic"><xsl:value-of select="author"/></span><br />
</xsl:otherwise>
</xsl:choose>
<span><xsl:value-of select="price"/></span><br />
</xsl:if>
</xsl:for-each>
我试图计算有多少作者,但似乎我对计数函数的路径有问题。任何帮助将不胜感激。