当前位置: 首页 > 知识库问答 >
问题:

如何使用JCR XPath在jcr: content/@jcr: data中搜索?

鄂坚
2023-03-14

我想搜索CQ5.6(AEM)实例中包含的JCR存储库中包含给定字符串xxx的所有. jsp文件。由于对JCR对XPath(或JCR-SQL2)的解释不熟悉,我在表达查询方面不太成功。

这将得到我所有的. jsp文件:

//*[jcr:contains(., '.jsp')]

这就是我希望如何限制上面包含xxx. jsp文件列表:

//*[jcr:contains(., '.jsp')][jcr:contains(jcr:content/@jcr:data, 'xxx')]
//*[jcr:contains(., '.jsp') and jcr:contains(jcr:content/@jcr:data, 'xxx')]
//*[jcr:contains(., '.jsp')]/jcr:content[jcr:contains(@jcr:data, 'xxx')]/..

@jcr:data类型为二进制。以上这些似乎都不起作用。我哪里做错了?

共有1个答案

华俊弼
2023-03-14

看起来查询应该在nt:file节点上,而不是在jcr:data节点上。有关包含在节点内的文件的搜索内容文本,请参见对JCR-Jackrabbit-Xpath表达式的回答。

使用queryBuilder的快速测试显示了来自CQ中JSP文件的结果(在本例中,它们包含"/Foundation/global.jsp"):

http://localhost:4502/bin/querybuilder.json?type=nt:file&nodename=*.jsp&group.1_fulltext=foundation/global.jsp

给出:

{
  success: true,
  results: 10,
  total: 21,
  offset: 0,
  hits: [
    {
      path: "/libs/cq/personalization/components/offerpage/body.jsp",
      excerpt: " --%&gt;&lt;%@include file=&quot;/libs/<strong>foundation/global.jsp</strong>&quot;%&gt;&lt;% I18n i18n = new I18n(slingRequest); String icnCls = ...",
      name: "body.jsp",
      title: "body.jsp",
      lastModified: "2013-04-24 11:45:05",
      created: "2013-04-24 11:32:58",
      size: "3 KB",
      mimeType: "text/plain"
    },
...
}
 类似资料:
  • 问题内容: 如何使用preg_match在数组中搜索? 例: 问题答案: 在这篇文章中,我将为您提供三种不同的方法来满足您的要求。 我实际上建议使用最后一个代码段,因为它最容易理解并且代码简洁。 如何查看数组中与我的正则表达式匹配的元素? 有专门用于此目的的功能。它将一个正则表达式作为第一个参数,并将一个数组作为第二个参数。 请参见以下示例: 输出 但是我只想获取指定组的值。怎么样? 与能解决清洁

  • 问题内容: 我有一个下面的JSON字符串,我想在JSON字符串中查找/搜索条件。 1)。查找存在的键数。2)。获取给定键的值(如果有数组) 我正在寻找类似Groovy GPath语法的解决方案 store.book-此数组的大小。 store.book [*]。category-如何对数组中存在的键进行计时。 store.bicycle-如果发现它必须返回真实值 问题答案: 您还可以使用REST

  • 问题内容: 我在netbeans中创建了jtable,并在jtable中填充了数据库中的数据,但是我无法使用jtextfield在jtable中实现搜索选项。谁能指导我。谢谢 问题答案: 为了在表上搜索内容,必须将原始内容存储在某个变量中。在下面的示例中,我将表模型的初始值存储在向量中。 下面有两种实现方式:一种是在文本字段上键入内容后立即进行搜索,另一种则仅在单击按钮后进行搜索。 对于第一个,您

  • 问题内容: 我在Elasticsearch中有一个带有value的字段。当我要使用查询字符串“ cgn:4189”进行搜索时,没有结果。我尝试像“ cgn:4189”那样逃脱冒号,但是我有语法错误。我不知道该怎么做。 结果: 和 结果: 你能帮我吗? 问题答案: 尝试以下查询,看看它是否适合您: 这是一些我用来测试的Sense代码: http://sense.qbox.io/gist/1c9096

  • 问题内容: 我正在使用Hibernate 4和Lucene 3.6。我对构面计数有要求。根据我的要求,我有一个实体“产品”。实体“产品”具有某些属性,例如ID,颜色,品牌。 现在,我的要求是,我想以多维方式获取该实体的商品数,并获取红色(彩色)耐克(品牌)服装的数量。 所以举个例子。我的数据库中保存了以下产品实体。 id品牌颜色 1锐步红 2锐步黑 3锐步绿 4利红 5利黑 6利黑 现在,我希望我

  • 问题内容: 我尝试搜索以a或b或c开头的名称,因此我使用了以下查询: 它没有给出空结果或失败结果,只是给出了空值,这意味着什么也没找到。有人可以指导我使用这种方法吗? 问题答案: 您无法使用做这种事情。您需要像这样使用: 该手段别的,所以这将匹配任何名字以A,B或C开头,有别的跟随它。

  • 在这里,我可以搜索python。 我希望放置负模式,实际上应该不会产生任何结果或不匹配。 当字符串包含python但字符串“在python上工作很容易”中不包含容易时,我喜欢使用re.search。我该怎么做?同时使用正负条件。

  • 我正在写一个程序来跟踪学校的班级和学生。我有学校、教室和学生用品。学校包含教室对象的ArrayList,每个教室包含学生对象的ArrayList。 我试图在学校类中编写一个方法,使用字符串名称和字符串classroomName作为参数来删除学生。 这就是我到目前为止所做的: 我认为这不起作用,因为学生对象的ArrayList是在课堂上声明的。 是否有一种方法可以通过对象ArrayList搜索使用非