0

我是 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为小说的书籍的总价格。

4

1 回答 1

3

从学习一些 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 &lt; 30]/price)"/>

于 2013-10-16T09:43:52.427 回答