如何使用 XQuery 合并多个 XML 文件
How to combine multiple XML Files with XQuery
我有 4 个 XML 文件(file1.xml、file2.xml、file3.xml、file4.xml),它们的结构几乎相似,但数据不同。我正在使用 XQuery 来执行不同的任务,但首先我需要将这些 XML 文件与 XQuery 结合起来。请告诉我如何将这些文件与 XQuery 结合起来。这是我为 file1.xml
编写的 XQuery 代码
<html>
<body>
<table border='1'>
<tr><td>Target</td><td>Successor</td></tr>
{
for $x in doc("file1.xml")//u//s//w
where lower-case(normalize-space($x))="has"
order by $x
return <tr><td>{data($x)}</td>
<td>{data($x/following-sibling::w[1])}</td>
</tr>
}
</table>
</body>
</html>
根据您的 XQuery 实现,可能有其他方法可以做到这一点,但只需打开所有这些方法并组合它们的内容应该几乎始终有效:
for $x in (doc("file1.xml"), doc("file2.xml"), doc("file3.xml"))//u//s//w
出于可读性的原因,排除文档访问权限可能更合理(如果您需要再次访问这组文件):
let $files := (doc("file1.xml"), doc("file2.xml"), doc("file3.xml"))
for $x in $files//u//s//w
我有 4 个 XML 文件(file1.xml、file2.xml、file3.xml、file4.xml),它们的结构几乎相似,但数据不同。我正在使用 XQuery 来执行不同的任务,但首先我需要将这些 XML 文件与 XQuery 结合起来。请告诉我如何将这些文件与 XQuery 结合起来。这是我为 file1.xml
编写的 XQuery 代码<html>
<body>
<table border='1'>
<tr><td>Target</td><td>Successor</td></tr>
{
for $x in doc("file1.xml")//u//s//w
where lower-case(normalize-space($x))="has"
order by $x
return <tr><td>{data($x)}</td>
<td>{data($x/following-sibling::w[1])}</td>
</tr>
}
</table>
</body>
</html>
根据您的 XQuery 实现,可能有其他方法可以做到这一点,但只需打开所有这些方法并组合它们的内容应该几乎始终有效:
for $x in (doc("file1.xml"), doc("file2.xml"), doc("file3.xml"))//u//s//w
出于可读性的原因,排除文档访问权限可能更合理(如果您需要再次访问这组文件):
let $files := (doc("file1.xml"), doc("file2.xml"), doc("file3.xml"))
for $x in $files//u//s//w