Greetings,

I'm wondering if someone can help with the best way to approach searching a 
specific element and returning the matching values of that element.

I figured xpath would be best so set this up:

let $term1 := "what"
let $term2 := "ever"

let $subjects := 
fn:collection("content")/article/front/article-meta/article-categories/subj-group[@subj-group-type
 = "heading"]/subject[fn:contains(., $term1) and fn:contains(., $term2)]

for $subject in fn:distinct-values($subjects)
return $subject

However, the number of terms will be variable, so I created this:

let $qtext := "whatever search"
let $terms :=  fn:tokenize($qtext," ")
let $contains := for $term in $terms
                 return
                  if ($term != $terms[fn:last()])
                  then fn:concat("fn:contains(., ", """", $term, """", ") and ")
                  else fn:concat("fn:contains(., ", """", $term, """", ")")

let $containsText := fn:string-join($contains)

let $subjects := 
fn:collection("content")/article/front/article-meta/article-categories/subj-group[@subj-group-type
 = "heading"]/subject[$containsText]

for $subject in fn:distinct-values($subjects)
return $subject

The problem is the $containsText isn't evaluated as a function(s).

Is there a way to do that or should I be using something different?

Any help or advice is much appreciated,

-Chad




~~~~~~~~~~~
Chad Bishop
Lead Developer
Science Societies

Synergy in Science: Partnering for Solutions
2015 ASA, CSSA, and SSSA International Annual Meeting
with the Entomological Society of America
November 15-18 | Minneapolis, Minnesota
www.acsmeetings.org<http://www.acsmeetings.org/>

_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to