首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >兔兔XPath问题

兔兔XPath问题
EN

Stack Overflow用户
提问于 2011-07-05 20:20:36
回答 1查看 682关注 0票数 0

我对杰克兔比较陌生。在我们的应用程序中,我们从未在repository.xml (如workspace.xml)文件中打开过workspace.xml部分,因为我们总是使用JCR引用直接访问给定的文档。我们使用Jack兔子v2.2.1Oracle作为存储库。现在,我们的需求正在扩展,因为我们希望使用文档元数据功能来存储有关文档的上下文信息,这样我们就可以使用元数据检索选定的文档集。

作为第一步,我在SearchIndex文件中添加了默认的workspace.xml部分,并重新启动了JCR。

我在日志文件中看到了许多这样的行,然后我看到它在工作区下创建了索引文件夹。

2011-07-05 15:04:01.724 INFO WebContainer :0 MultiIndex.java:1204索引./vfs:metaData/21ee130e-978e-415f-bfd1-7aa03d91608c/vfs:attributes (3500)

我有这样的文件夹结构。当我在JCR中创建一个文档时,我将元数据信息指定为文档的一部分,它是由一个带有docType、uploadedBy、contextValue等标签的复杂XSD类型组成的。

代码语言:javascript
复制
/ (root)
  /MyApp (sub-folder) 
      /documents/ (sub-folder) 
         /document-1.pdf (file) 
         /document-2.pdf (file) 
     /accounts/ (sub-folder) 
         /account.txt (file) 
        etc... 

下面的XPath表达式可以工作。

//jcr:root/vfs:metaData//*vfs:attributes/vfs:docType='TAX_DOCS'

如果我给出了错误的值,例如,代替了'TAX_DOCS','TAX',它就不会像预期的那样返回任何文档,这是很棒的。这证明元数据按预期正确存储,并在过滤过程中正确使用。

这个查询的问题是它从根文件夹开始搜索,但是我只想从/MyApp/documents子文件夹中搜索。所以我试了一下:

//jcr:root/MyApp/documents//vfs:metaData//*vfs:attributes/vfs:docType='TAX_DOCS'

它什么也不回。然后我也试了一下,但没有成功。

//jcr:root/MyApp/documents//*vfs:metaData/vfs:attributes/vfs:docType='TAX_DOCS'

那我做错什么了?workspace.xml配置中是否有我们需要设置或缺少的内容?

任何帮助都是非常感谢的。

谢谢,杰克

EN

回答 1

Stack Overflow用户

发布于 2011-10-07 16:05:38

删除除最后一个path组件之外的任何双斜杠,并对属性值使用@表示法,结果如下:

代码语言:javascript
复制
/jcr:root/MyApp/documents//*[vfs:attributes/@vfs:docType='TAX_DOCS']

//构造查找整个子树,而不是像/ does那样只查找直接的子树。JCR规范只要求实现支持//构造作为XPath查询的最后一步。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6588406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档