2011-05-12 67 views
0

我使用下面的XML文檔結構:錯誤的搜索查詢

<feed> 
    <entry> 
    <title>Title 1</title> 
    </entry> 
    <entry> 
    <title>Entry by Sony</title> 
    </entry> 
</feed> 

我遍歷在其文件名開頭的數據庫的所有文件「喂」,例如:feed_doc1,feed_doc2等我尋找用於包含給定關鍵詞並試圖返回文檔名稱的文檔。我使用BaseX XML數據庫,我使用下面的XQuery:

for $doc_name in db:list() 
where fn:starts-with($doc_name, 'feed') 
    return 
     for $node in doc($doc_name)/feed/entry[.//text() contains text 'Sony']] 
     return $doc_name 

總之,我的查詢應該返回所有包含關鍵字「索尼」文件的文件名。

我看到下列錯誤:

產生java.io.IOException:org.basex.query.item.FTxt不能轉換到org.basex.query.item.QNm

我試圖谷歌關於此錯誤,但無法找到足夠的幫助信息。有人可以幫忙嗎?

謝謝, 索尼

+0

會發生什麼情況的任何後裔操作? – 2011-05-19 17:46:29

回答

0

org.basex.query.item.FTxt =>是一個文本節點片段和 org.basex.query.item.QNm =>是一個合格的名稱或的QName() 你極有可能的QName轉換爲字符串

然而

的Ftxt(或全文)=>將這個表達式.//文本()包含文本「索尼」

雙斜槓「允許的臺階上,如果你嘗試`返回字符串($ DOC_NAME)`上的一個節點」,它可以在精確的和XQuery的1.1功能,不需要我會做這個

doc($doc_name)/entry/title[contains(text(),'Sony')]