XQuery:函数 "doc" 是如何工作的

XQuery: how does the function "doc" work

我正在使用 XQuery tester 学习 XML 和 XQuery。

Here 是我正在测试的一个简单示例。

如果我将上面的整个 xml 文件复制到 XQuery 测试器并尝试这个 xquery /bookstore/book/title,我可以得到我想要的。

现在我尝试使用函数doc()
我不知道它是如何工作的。我知道这个函数需要一个参数作为 xml 文件。所以我认为我们需要文件的整个路径。但是在上面的例子中,它只是说我们可以这样使用这个函数:doc("books.xml")。我很困惑:"books.xml"在哪里?

我也尝试在我的 PC 中创建一个名为 "books.xml" 的 xml 文件,并像这样传递参数:doc("C:\Users\lenovo\Desktop\books.xml"),但我得到一个错误:Premature end of file

谁能告诉我如何使用函数 doc()

函数 doc() 获取一个 URI 作为参数。 URI 是 XML 文档的名称。该 XML 文档作为调用函数的值返回。您的处理器可以定义从 URI 名称到文件系统、存储在数据库中的文档或其他任何内容的映射。

在您的情况下,您似乎是通过网页使用处理器。它让您从本地文件系统解析 doc() 的可能性非常低,因为网页(几乎)不可能访问主机的文件系统。

虽然下面的面板似乎让您可以粘贴文档的内容(然后用于显示评估查询的结果,这有点奇怪)。

如果您需要有关 dcc() 在 XPath Tester 上的行为方式的更多详细信息,恐怕您需要直接询问他们。

您必须使用 URI 名称约定,在您的示例中为 doc("file:///C:/Users/lenovo/Desktop/books.xml")。那当然是 Windows。