0

我正在尝试XQuery这个BaseX

xquery //Bookstore/Book/Title

尽管在2:01 的教程中它对我有效,但它会引发此错误:

Error:
Stopped at ., 1/2:
[XPDY0002] No context item defined to evaluate 'root()'.
Compiling:
- simplifying descendant-or-self step(s)
Query:
//Bookstore/Book/Title
Optimized Query:
root()/descendant::Bookstore/Book/Title
Query plan:
<QueryPlan>
  <CachedPath>
    <Root/>
    <IterStep axis="descendant" test="Bookstore"/>
    <IterStep axis="child" test="Book"/>
    <IterStep axis="child" test="Title"/>
  </CachedPath>
</QueryPlan>

我在网上搜索过,我真的不明白该怎么做。为什么会发生这种情况,因为我root element在命令中是Bookstore. 我试图查询这个:

<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">
      <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>
      <Remark>
      Buy this book bundled with "A First Course" - a great deal!</Remark>
   </Book>
   <Book ISBN = "ISBN-0-11-222222-3" Price="50">
      <Title>Jennifer's Economical Database Hints</Title>
      <Authors>
         <Author>
            <First_Name>Jennifer</First_Name>
            <Last_Name>Widom</Last_Name>
         </Author>
      </Authors>
   </Book>
   <Magazine Month="January" Year="2009">
       <Title>National Geographic</Title>
   </Magazine>
   <Magazine Month="February" Year="2009">
       <Title>National Geographic</Title>
   </Magazine>
   <Magazine Month="February" Year="2009">
       <Title>Newsweek</Title>
   </Magazine>
</Bookstore>
4

1 回答 1

1

看起来您没有打开文档(数据库),因此root()未定义文档根目录。来自关于创建数据库的 BaseX 文档

  • 控制台: CREATE DB db /path/to/resources将初始文档添加到数据库
  • GUI:转到数据库→新建,按浏览选择初始文件或目录,然后按确定

创建数据库后,它会自动打开,否则使用控制台命令OPEN [db]或 GUI 数据库→打开和管理。

于 2014-06-09T15:37:34.330 回答