2011-05-12 113 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')]