在 Adobe CRX 中查询 XPath
Query XPath in Adobe CRX
我正在 Adobe CRX 中执行 XPath 查询,我正在尝试查找包含字符串 'Xbox Live' 的节点列表。我得到的是同时包含 'Xbox' 和 'Live' 的节点。我想知道要获得与我的字符串完全匹配的查询是什么。
当前 XPath 查询:/jcr:root/content//*[jcr:contains(., 'Xbox Live')] order by @jcr:score
我要返回的内容示例:
- 此优惠需要 Xbox Live 帐户
- 您的 Xbox Live 用户名无效
- XBox Live 就是未来!
我不想返回的内容示例:
- Xbox 和 Playstation 将永远存在
- 我的寿命会比我的 Xbox 长吗?
- Xbox 超越了我的 Wii
你的 xpath/xquery 很好,应该 return 元素包含确切的短语 "Xbox Live"
,假设 Adobe CRX 有不错的 xpath 1.0 实现。
可能的问题是,通过在 contains()
中使用 .
,将评估所有后代文本节点的串联。例如,以下 parent
元素也被认为与 contains(., 'Xbox Live')
谓词匹配:
<parent>Xbox <child>Live</child></parent>
如果要对单个文本节点和 return 匹配文本节点的父元素求值 contains()
,请改为尝试以下操作:
/jcr:root/content//text()[jcr:contains(., 'Xbox Live')]/parent::* order by @jcr:score
我正在 Adobe CRX 中执行 XPath 查询,我正在尝试查找包含字符串 'Xbox Live' 的节点列表。我得到的是同时包含 'Xbox' 和 'Live' 的节点。我想知道要获得与我的字符串完全匹配的查询是什么。
当前 XPath 查询:/jcr:root/content//*[jcr:contains(., 'Xbox Live')] order by @jcr:score
我要返回的内容示例:
- 此优惠需要 Xbox Live 帐户
- 您的 Xbox Live 用户名无效
- XBox Live 就是未来!
我不想返回的内容示例:
- Xbox 和 Playstation 将永远存在
- 我的寿命会比我的 Xbox 长吗?
- Xbox 超越了我的 Wii
你的 xpath/xquery 很好,应该 return 元素包含确切的短语 "Xbox Live"
,假设 Adobe CRX 有不错的 xpath 1.0 实现。
可能的问题是,通过在 contains()
中使用 .
,将评估所有后代文本节点的串联。例如,以下 parent
元素也被认为与 contains(., 'Xbox Live')
谓词匹配:
<parent>Xbox <child>Live</child></parent>
如果要对单个文本节点和 return 匹配文本节点的父元素求值 contains()
,请改为尝试以下操作:
/jcr:root/content//text()[jcr:contains(., 'Xbox Live')]/parent::* order by @jcr:score