使用BaseX执行XQuery

Cod*_*odo 1 xml xsd xquery basex

我试图用来BaseX运行一个XQuery没有成功.我尝试过键入以下命令:

doc("Bookstore.xml")//Bookstore
//Bookstore
XQUERY[//Bookstore]
Run Code Online (Sandbox Code Playgroud)

我收到这些错误消息:

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.
Run Code Online (Sandbox Code Playgroud)

每当我试图击中Execute Query.我怎样才能让它真正起作用?我正在观看斯坦福教程,但那些显示在那里的命令无法正常工作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>
Run Code Online (Sandbox Code Playgroud)

编辑

在此输入图像描述

Jen*_*rat 5

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

XQUERY //Bookstore
XQUERY doc('Bookstore.xml')//Bookstore
Run Code Online (Sandbox Code Playgroud)

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

如果您正在使用BaseX GUI,您也可以直接将查询放入查询窗口,然后您根本不需要XQUERY命令前缀,而是直接其中一个(如上所述)

//Bookstore
//doc('Bookstore.xml')//Bookstore
Run Code Online (Sandbox Code Playgroud)

BaseX GUI中的命令行和XQuery输入


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