我试图从XPath中的JCR中选择一个文件夹及其后代。我可以很容易地选择足够的文件夹:选择元素及其后代
//content/documents/folder-name
我可以选择它的后代也:
//content/documents/folder-name//*
但是,我想不出如何让两者。我尝试了几件事情。这些选择什么:
//content/documents/folder-name | //content/documents/folder-name//*
//content/documents/folder-name(. | *)
//content/documents/folder-name/(. | *)
//content/documents/folder-name/descendant-or-self
//content/documents/folder-name/descendant-or-self::node()
这些都抛出javax.jcr.query.InvalidQueryException
:
显然我在XPath的可怕。请帮忙。
编辑:我使用的是//
前缀,因为我没有意识到我可以用/jcr:root/content
代替。但是,我也遇到了同样的问题。
'/ jcr:root/content/documents/folder-name |/jcr:root/content/documents/folder-name/*'什么也不选。同样也适用于'// content/documents/folder-name | //内容/文档/文件夹名称// *'。 '// content/documents/folder-name'不包含后代。 –
也许你最好发布样本XML和你期待的确切结果,以便我们知道你想要做什么。您评论中的XPath现在包含名称空间前缀,这是潜在问题的另一个可能来源,我们无法在没有看到您的XML的情况下进行诊断。 – kjhughes
我想要,但它是一个巨大的文件与NDA的东西在里面。当我有几分钟的时间时,我会尝试让事情更近一些。 –