XQuery——传递参数列表
XQuery – passing a list of parameters
一点小事都想不通!
我需要自动打包来自 TEI XML 的 ePub。我知道如何使用 compression
但无法以编程方式传递参数列表。问题是我想获取一个由一组 divs
组成的列表并将其作为参数传递给函数。
而不是
let $entries := (<entry>x</entry>, <entry>y</entry>)
compression:zip($entries, true())
我需要做类似
的事情
let $header := (<header>xyz</header>)
let $divs := (
for $book in doc('./file.xml')
return $book//tei:div[@n='1']
)
let $entries := (
for $div in $divs
return <entry>{$div}</entry>
)
compression:zip($entries, $header, true())
我根本无法将提取的 divs
作为逗号分隔的参数列表传递(作为压缩需要)。如果我可以使用数组迭代或路径连接之类的东西,那就没问题了!
我和
很亲近
for $chapter at $count in doc('./bukwor.xml')//tei:div[@n='1']
return
<entry name="chapter-{$count}"> type="xml">{$chapter}</entry>
但还是不会变魔术
知道了(感谢 https://en.wikibooks.org/wiki/XQuery/DocBook_to_ePub)。
compression:zip
函数采用 comma-separated 个参数列表以及未分隔的列表。这样做是合法的
let $chaps :=
(
for $chapter at $count in doc('./file.xml')//tei:div[@n='1']
return
<entry name="OEBPS/chapter-{$count}.xhtml" type="xml">{$chapter}</entry>
)
let $entries :=
(
<entry name="mimetype" type="text" method="store">application/epub+zip</entry>,
<entry>XYZ</entry>,
$chaps
)
最后一个 $chaps
条目收集正确的文件并将它们添加到存档中。
一点小事都想不通!
我需要自动打包来自 TEI XML 的 ePub。我知道如何使用 compression
但无法以编程方式传递参数列表。问题是我想获取一个由一组 divs
组成的列表并将其作为参数传递给函数。
而不是
let $entries := (<entry>x</entry>, <entry>y</entry>)
compression:zip($entries, true())
我需要做类似
的事情let $header := (<header>xyz</header>)
let $divs := (
for $book in doc('./file.xml')
return $book//tei:div[@n='1']
)
let $entries := (
for $div in $divs
return <entry>{$div}</entry>
)
compression:zip($entries, $header, true())
我根本无法将提取的 divs
作为逗号分隔的参数列表传递(作为压缩需要)。如果我可以使用数组迭代或路径连接之类的东西,那就没问题了!
我和
很亲近for $chapter at $count in doc('./bukwor.xml')//tei:div[@n='1']
return
<entry name="chapter-{$count}"> type="xml">{$chapter}</entry>
但还是不会变魔术
知道了(感谢 https://en.wikibooks.org/wiki/XQuery/DocBook_to_ePub)。
compression:zip
函数采用 comma-separated 个参数列表以及未分隔的列表。这样做是合法的
let $chaps :=
(
for $chapter at $count in doc('./file.xml')//tei:div[@n='1']
return
<entry name="OEBPS/chapter-{$count}.xhtml" type="xml">{$chapter}</entry>
)
let $entries :=
(
<entry name="mimetype" type="text" method="store">application/epub+zip</entry>,
<entry>XYZ</entry>,
$chaps
)
最后一个 $chaps
条目收集正确的文件并将它们添加到存档中。