Ruchi,
You were correct! If I remove the space in my path, it works.
I wrote this method that cleans up my path so that it can be used in an xpath
expression: It works.
private String escapePath(String contentPath) {
String[] nodes = contentPath.split("/");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < nodes.length; i++) {
if (sb.length() > 0) {
sb.append("/");
}
String escapedName = ISO9075.encode(nodes[i]);
sb.append(escapedName);
}
return sb.toString();
}
Thanks for the answer.
Phillip
----- Original Message -----
From: "ruchi goel" <[EMAIL PROTECTED]>
To: [email protected]
Sent: Wednesday, May 2, 2007 3:20:38 AM (GMT-0500) America/New_York
Subject: Re: // in xpath does not match immediate children
Hi Philips ,
I am doing the same but it works.
Say , eg. I want all documents under /cms/childfolder1 which have author
as "sushma", any of the following queries returns me the documents which
are authored by 'sushma'
* /jcr:root/cms/childfolder1//[EMAIL PROTECTED]:author='sushma']
* /jcr:root/cms/childfolder1/element(*,ps:document)[EMAIL
PROTECTED]:author='sushma']
Is the space between your search string 'tag' + space + '1' a problem ?
Did you try testing it via eclipse Jackrabbit Viewer plugin ?
-Ruchi
Phillip Rhodes wrote:
> Hello everyone,
>
> I am using jackrabbit to store "tags" that a user creates.
> Given a structure (below) where each leaf node has an attribute of
> CONTENT_TYPE with a value of "Tag"
> /myfolder/tag 1/Tag 1
> /myfolder/tag 2/Tag 2
> /myfolder/tag 3/Tag 3
>
> My application needs to be able to query for what tags exist under a node
> path
> e.g.
> what tags are under /myfolder/tag 1?
> what tags are usder /myfolder/?
>
> My problem is that my xpath expression is not working for queries that pass
> the tag parent in as a node to look down.
> I have a tag with a node path of /myfolder/tag 1/Tag 1 , but xpath search for
> tags in /myfolder/tag 1 fails to find any nodes.
>
> This query will not find it:
> /jcr:root/myfolder/tag 1//[EMAIL PROTECTED] = 'Tag']
>
> This query does find it (but it is not restrictive enough, returns nodes in
> all folders).
> /jcr:root/myfolder//[EMAIL PROTECTED] = 'Tag']
> Results
> /myfolder/tag 1/Tag 1
> /myfolder/tag 2/Tag 2
>
> /myfolder/tag 3/Tag 3
> /myfolder/tag 4/Tag 4
>
>
> Is there a way to do a search in xpath that does children AND it's
> descendents?
>
> Thanks!
>
>
>