我是XSLT的新手,并且不知道如何处理它。 我的XML文件是:
<?xml version="1.0"?>
<books>
<book>
<title type="fiction">CS115</title>
<authors>Adams</authors>
<price>12.0</price>
</book>
<book>
<title type="fiction">CS205</title>
<authors>Dykes</authors>
<price>50.2</price>
</book>
<book>
<title type="nonfiction">CS255</title>
<authors>Brunner,Computer</authors>
<price>11.5</price>
</book>
<book>
<title type="nonfiction">CS118</title>
<authors>Adams,Bououss</authors>
<price>20.0</price>
</book>
<book>
<title type="fiction">The Hobbit</title>
<authors>J.R.R. Tolkien</authors>
<price>25.99</price>
</book>
</books>
我想计算价格低于30且 title / @ type 的书籍的总价格。
答案 0 :(得分:2)
从学习一些XPath开始:/books/book
选择所有book
个元素,/books/book[title/@type = 'fiction']
标题类型属性为虚构的元素,/books/book[title/@type = 'fiction' and price < 30]
添加有关价格的约束,最后sum(/books/book[title/@type = 'fiction' and price < 30]/price)
计算总和。
在XSLT代码中,您需要转义<
:<xsl:value-of select="sum(/books/book[title/@type = 'fiction' and price < 30]/price)"/>
。