簡體   English   中英

BaseX上的Xpath / Xquery沒有帶來任何結果

[英]Xpath/Xquery on BaseX bringing back no results

試圖在BaseX中第一次使用XPath / Xquery,我在下面的carpark片段中有一個opendata.gov的集合/數據庫,

<?xml version="1.0" encoding="utf-8"?>
<CarParkDataImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://www.transportdirect.info/carparking B:/CODE/carparks/CarParking.xsd" xmlns="http://www.transportdirect.info/carparking">
<CarPark>
    <CarParkRef>3</CarParkRef>
    <CarParkName>Nunnery Lane</CarParkName>
    <Location>York</Location>
    <Address>Nunnery Lane--York--North Yorkshire</Address>
    <Postcode>YO23 1AA</Postcode>
</CarPark>

我想要做的是找到位置是某個地方的位置,在這個例子中“Nunnery Lane”,然后返回停車場參考,所以我試過(db被稱為Car_park_data,里面有8個文件)

collection("Car_park_data")/CarParkDataImport/CarPark[Location="Nunnery Lane"]/CarParkRef

然后嘗試了flowr

for $x in collection("Car_park_data")/CarParkDataImport/CarPark
where $x/Location="Nunnery Lane"
order by $x/CarParkRef
return $x/CarParkRef

兩者都沒有回擊......第一個查詢的完整細節(basex的結果位)

Compiling:
- pre-evaluating fn:collection("Car_park_data")
- adding text() step
- applying text index
Query:
collection("Car_park_data")/CarParkDataImport/CarPark[Location="Nunnery  Lane"]/CarParkRef
Optimized Query:
db:text("Car_park_data", "Nunnery  Lane")/parent::Location/parent::CarPark[parent::CarParkDataImport/parent::docume nt-node()]/CarParkRef
Result:
- Hit(s): 0 Items
- Updated: 0 Items
- Printed: 0 Bytes
- Read Locking: local [Car_park_data]
- Write Locking: none
Timing:
- Parsing: 1.33 ms
- Compiling: 0.54 ms
- Evaluating: 0.36 ms
- Printing: 0.28 ms
- Total Time: 2.52 ms
Query plan:
<QueryPlan>
<CachedPath>
 <ValueAccess data="Car_park_data" type="TEXT">
  <Str value="Nunnery Lane" type="xs:string"/>
 </ValueAccess>
 <IterStep axis="parent" test="Location"/>
  <IterStep axis="parent" test="CarPark">
  <CachedPath>
    <IterStep axis="parent" test="CarParkDataImport"/>
    <IterStep axis="parent" test="document-node()"/>
  </CachedPath>
   </IterStep>
   <IterStep axis="child" test="CarParkRef"/>
  </CachedPath>
</QueryPlan>

我做錯了什么,正如我所說的使用basex,你可以看到它是可行的Xpat / Xquery,(即basex報告沒有錯誤)但我猜我的Xquery有問題嗎?

如果我使用BaseX為“Nunnery Lane”做“查找”,這就是回來的結果

Query:
/descendant-or-self::*[text() contains text "Nunnery Lane"]
Result:
- Hit(s): 4 Items
- Updated: 0 Items
- Printed: 601 Bytes
- Read Locking: global
- Write Locking: global

所以我然后嘗試將包含文本添加到我的查詢,相同的avale,沒有命中

感謝您的任何幫助

通過添加將命名空間考慮在內

declare default element namespace "http://www.transportdirect.info/carparking";

請參閱http://www.w3.org/TR/xquery/#id-default-namespace

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM