2016-04-24 42 views
0

我有一個XML文件與一個結構:如何通過Xquery從XML文件中獲取最厚的書的標題?

<Books> 
    <Book Topic="Databases" eBook = "Available"> 
    <Pablisher>Wrox</Pablisher> 
    <Title>Microsoft SQL Server 2008 Integration Services: Problem, Design, Solution</Title> 
    <Authors> 
     <Author>Erik Veerman</Author> 
     <Author>Jessica M. Moss</Author> 
     <Author>Brian Knight</Author> 
     <Author>Jay Hackney</Author> 
    </Authors> 
     <ISBN>978-0-470-52576-0</ISBN> 
     <Pages>480</Pages> 
     <PublicationDate>November 2009</PublicationDate> 
     <Price>49.99</Price> 
    </Book> 
    </Books> 

有很多書,我必須返回一個最厚的稱號。 我唯一知道的是如何找到的網頁最多人數:

max(for $x in doc("C:\XMLFile1.xml")/Books/Book/Pages 
return $x) 

但下一步是絕對的我不清楚。先謝謝你。

+0

好,您可以返回頁面最多的圖書。但最厚的,你將不得不知道書的寬度或紙張的厚度和覆蓋... – dirkk

回答

2

你想要做的是採取的最大價值,並找到一本書,它是

let $doc =  doc("C:\XMLFile1.xml") 
let $pages := max($doc/Books/Book/Pages) 
return $doc/Books/book[Pages = $pages] 
1

的一部分,您還可以用一個XPath表達式做到這一點:

/Books/Book[. is /Books/Book[Pages = max(/Books/Book/Pages)]] 
相關問題