使用BaseX执行XQuery

时间:2014-06-09 13:43:58

标签: xml xsd xquery basex

我正在尝试使用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>

修改

enter image description here

1 个答案:

答案 0 :(得分:5)

如果您正在运行BaseX命令,例如在 BaseX命令行客户端或GUI命令输入行中,则必须使用命令XQUERY为查询添加前缀。 BaseX命令由空格与其参数分隔,因此在您的情况下,运行

中的任何一个
XQUERY //Bookstore
XQUERY doc('Bookstore.xml')//Bookstore

取决于文档(数据库)是否已经打开。

如果您正在使用 BaseX GUI ,您也可以直接将查询放入查询窗口,然后根本不需要XQUERY命令前缀那些(如上)

//Bookstore
//doc('Bookstore.xml')//Bookstore

Command line and XQuery input in BaseX GUI


无论如何:你可能想要使用/Bookstore代替:至少如果我猜对了,你想查询根元素,而不是整个文档中的所有<Bookstore/>元素。