Hi Pradeep,
You can do a cts:search with a cts:word-query to find the text in text
nodes in your document, which will take care of your Doc1 case,
regardless of what element the text is in. For the Doc2 case, you need
to use a cts:element-attribute-word-query and specify the element and
attribute. For the attributes, you need to specify each
element-attribute pair that you want to search through. If you combine
the 2 queries with an or-query, then you can search for them both at the
same time. Something like:
let $word := "apple"
return
cts:search(doc(), cts:or-query(( cts:word-query($word),
cts:element-attribute-word-query(xs:QName("name"),
xs:QName("category"), $word) )) )
-Danny
From: [email protected]
[mailto:[email protected]] On Behalf Of Pradeep
Maddireddy
Sent: Tuesday, December 30, 2008 1:57 PM
To: [email protected]
Subject: [MarkLogic Dev General] search elements and attributes of
alldocuments
Hi..!
How can we write an Xquery function to find the documents (XML documents
with different structures) that have the word "fruit" in them either as
an element or attribute?
For example say Doc1 has the following content
<root>
<Category>fruit</Category>
<name>Apple</name>
</root>
Doc2 has the following content
<root>
<name category="fruit">Apple</name>
</root>
Both the documents should be selected as the first document has "fruit"
as element and second document has "fruit" as an attribute.
Thanks in advance.
Regards,
Pradeep Maddireddy
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general