如何实际使用XQUERY?

5 xquery

我一直在网站上阅读很多XQUERY教程.几乎所有人都在教我XQUERY语法.假设我已经理解了XQUERY语法,我将如何在我的网站上实际实现XQUERY?

例如,我有book.xml:

<?xml version="1.0" encoding="iso-8859-1" ?>
<books>
<book>
   <title>Doraemon</title>
   <authorid>1</authorid>
</book>
<book>
   <title>Ultraman</title>
   <authorid>2</authorid>
</book>
</books>
Run Code Online (Sandbox Code Playgroud)

然后,我有author.xml

<?xml version="1.0" encoding="iso-8859-1" ?>
<authors>
<author id="1">Mr A</author>
<author id="2">Mr B</author>
</authors>
Run Code Online (Sandbox Code Playgroud)

我想生成如下所示的HTML:

<table>
    <tr>  <td>Title</td>     <td>Author</td> </tr>
    <tr>  <td>Doraemon</td>  <td>Mr A</td>   </tr>
    <tr>  <td>Ultraman</td>  <td>Mr B</td>   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

请给我一些例子.或者我可以参考的任何网站.非常感谢.

frg*_*lps 6

(: file: titles.xqy :)
<table>
<tr><th>title</th><th>author</th></tr>
{
let $books-doc := doc("books.xml")
let $authors-doc := doc("authors.xml")
for $b in $books-doc//book,
    $a in $authors-doc//author
where $a/@id = $b/authorid
return 
<tr>
    <td>{$b/title/text()}</td>
    <td>{$a/text()}</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)


小智 0

<table>
<tr><td>Title<td><td>Author<td></tr>
{
    let $authordoc := fn:doc("author.xml")
    for $book in fn:doc("book.xml")/books/book
    return
        <tr>
                <td>{ $book/title }</td>
                <td>{ $authordoc/authors/author/[@id eq $book/authorid] }</td>
        </tr>
}
</table>
Run Code Online (Sandbox Code Playgroud)

ps:还没有测试/执行它,但这就是一种解决方案的样子