Thanks Mike, you are absolutely correct. Sorry 'bout that...
So here are a few ways you might do this:
1) with XPath and cts:contains
//car[cts:contains(., cts:and-query((
cts:element-value-query(xs:QName("car"), "m3"),
cts:element-attribute-value-query(xs:QName("car"),
xs:QName("color"),
"green"))))]
2) with cts:search
cts:search(/carList/car,
cts:and-query((
cts:element-value-query(xs:QName("car"), "m3"),
cts:element-attribute-value-query(xs:QName("car"),xs:QName("color"),
"green")
))
)
Does that get you what you are looking for?
-Danny
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Mike
Sokolov
Sent: Thursday, December 06, 2007 9:42 AM
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] simple cts:search question
There might be something about the scope of the query (first arg to
cts:search), but in my experience cts:element-query doesn't include
itself in its scope, only its descendants, so I don't think the change
you are suggesting will solve his problem? I put in a change request to
correct that: it seems like the behavior everyone expects.
-Mike
Danny Sokolsky wrote:
> I think the problem is that the cts:element-query is on the "carList"
> element, and it should be on the "car" element.
>
> -Danny
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Jacob
> Meushaw
> Sent: Thursday, December 06, 2007 8:58 AM
> To: [email protected]
> Subject: [MarkLogic Dev General] simple cts:search question
>
> Hello All,
>
> I'm stumped on what must be a very simple cts:search question.
>
> I'm trying to identify documents in my database using cts:search which
> match a set of parameters. The case I'm stumped on is where I want to
> match on both the value of the element as well as one of it's
> attributes.
>
> For example a document might contain:
>
> <carList>
> <car color="green">M3</car>
> <car color="blue">beetle</car>
> <car color="yellow">fiat</car>
> <car color="red">911</car>
> </carList>
>
> I can't seem to figure out how to construct a cts query that matches
> both the attribute value and the element value of the same element:
>
> cts:element-query(
> xs:QName("carList"),
> cts:and-query((
>
>
cts:element-attribute-value-query(xs:QName("car"),QName("","color"),"blu
> e"),
> cts:element-value-query(xs:QName("car"),"M3")
> ))
> )
>
> This incorrectly matches the example. The M3 is not blue.
>
> Hopefully this makes sense.
>
> Any ideas?
>
> Thanks,
> Jake
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general
>
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general