我正在尝试使用BaseX
来运行XQuery
但没有成功。我尝试输入如下命令:
doc("Bookstore.xml")//Bookstore
//Bookstore
XQUERY[//Bookstore]
我收到这些错误消息:
Stopped at C:/tools/libxml/file, 1/32:
Unknown command: doc("Bookstore.xml")//Bookstore. Try HELP.
Stopped at C:/tools/libxml/file, 1/12:
Unknown command: //Bookstore. Try HELP.
Stopped at C:/tools/libxml/file, 1/20:
Unknown command: XQUERY[//Bookstore]. Try HELP.
每当我尝试点击执行查询时。我怎样才能让它真正起作用?我正在关注Stanford tutorials,但那些显示在那里的命令在BaseX
上无效。
下面你可以看到file
我正在尝试查询教育目的。
<?xml version="1.0" ?>
<!--Bookstore with no DTD-->
<Bookstore>
<Book ISBN="ISBN-0-13-713526-2" Price="85" Edition="3rd">
<Title>A First Course in Database Systems</Title>
<Authors>
<Author>
<First_Name>Jeffrey</First_Name>
<Last_Name>Ullman</Last_Name>
</Author>
<Author>
<First_Name>Jennifer</First_Name>
<Last_Name>Widom</Last_Name>
</Author>
</Authors>
</Book>
<Book ISBN="ISBN-0-13-815504-6" Price="100">
<Remark>
Buy this book bundled with "A First Course" - a great deal!
</Remark>
<Title>Database Systems: The Complete Book</Title>
<Authors>
<Author>
<First_Name>Hector</First_Name>
<Last_Name>Garcia-Molina</Last_Name>
</Author>
<Author>
<First_Name>Jeffrey</First_Name>
<Last_Name>Ullman</Last_Name>
</Author>
<Author>
<First_Name>Jennifer</First_Name>
<Last_Name>Widom</Last_Name>
</Author>
</Authors>
</Book>
</Bookstore>
修改
答案 0 :(得分:5)
如果您正在运行BaseX命令,例如在 BaseX命令行客户端或GUI命令输入行中,则必须使用命令XQUERY
为查询添加前缀。 BaseX命令由空格与其参数分隔,因此在您的情况下,运行
XQUERY //Bookstore
XQUERY doc('Bookstore.xml')//Bookstore
取决于文档(数据库)是否已经打开。
如果您正在使用 BaseX GUI ,您也可以直接将查询放入查询窗口,然后根本不需要XQUERY
命令前缀那些(如上)
//Bookstore
//doc('Bookstore.xml')//Bookstore
无论如何:你可能想要使用/Bookstore
代替:至少如果我猜对了,你想查询根元素,而不是整个文档中的所有<Bookstore/>
元素。