Hello guys,<br><br>thanks a lot!<br><br>Both solutions seems to be ok (i only had to fix some typos in Michael&#39;s solution, like missing &#39;&quot;&#39; or too many &#39;)&#39; :P). The main purpose is, as Micheal guessed, histogram of some nodes.<br>
<br>Best,<br>M.<br><br><br><br><div class="gmail_quote">On Mon, Mar 9, 2009 at 12:29 AM, Michael Kay <span dir="ltr">&lt;<a href="mailto:mike@saxonica.com">mike@saxonica.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">Is &quot;someStr&quot; the same element name throughout? If so, it 
looks like this:</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">declare function local:depth($e as element(*)) as 
xs:integer {</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">  
count($e/ancestor::*[node-name(.)=node-name($e)]</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">};</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">declare function local:histogram($root as 
element(mainNode), $name as xs:QName) as element(count)*</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">  for $d in 
distinct-values(mainNode//*[node-name()=$s]/local:depth(.)) </font></span></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span>  return &lt;count element=&quot;{$name}&quot; 
depth=&quot;{$d} 
count=&quot;{count(mainNode//*[node-name()=$name][local:depth(.)=$d]))</span></font></font></font></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span>}</span></font></font></font></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span></span></font></font></font> </div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span>for $n in (xs:QName(&quot;&quot;, &quot;someStr&quot;), xs:QName(&quot;&quot;, 
&quot;someOtherStr&quot;), .....)</span></font></font></font></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span>return local:histogram(mainNode, 
$n)</span></font></font></font></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span></span></font></font></font> </div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span>Michael Kay</span></font></font></font></div>
<div dir="ltr" align="left"><font face="Arial"><font size="2"><font color="#0000ff"><span><a href="http://www.saxonica.com/" target="_blank">http://www.saxonica.com/</a></span><span>  </span></font></font></font></div><br>

<blockquote style="border-left: 2px solid rgb(0, 0, 255); padding-left: 5px; margin-left: 5px; margin-right: 0px;">
  <div dir="ltr" align="left" lang="en-us">
  <hr>
  <font size="2" face="Tahoma"><b>From:</b> <a href="mailto:talk-bounces@x-query.com" target="_blank">talk-bounces@x-query.com</a> 
  [mailto:<a href="mailto:talk-bounces@x-query.com" target="_blank">talk-bounces@x-query.com</a>] <b>On Behalf Of 
  </b>Michalmas<br><b>Sent:</b> 08 March 2009 20:29<br><b>To:</b> 
  <a href="mailto:talk@x-query.com" target="_blank">talk@x-query.com</a><br><b>Subject:</b> [xquery-talk] xquery: iteration 
  simulation<br></font><br></div><div><div></div><div class="h5">
  <div></div>Hello guys,<br><br>Can you help me with the following 
  problem:<br><br>I have some XML.<br><br>Now, i need to query it. But what i 
  need to do, is to make queries of the 
  form:<br><br>count(mainNode//someStr)<br>count(mainNode//someStr/someStr)<br>(...)<br>count(mainNode//someStr/someStr/someStr/someStr/someStr/someStr/someStr/someStr)<br><br>The 
  deep level of the last query may be even around 50 (so, 50 queries).  
  <br>Such set of queries will be repeated for about 100 keywords (like 
  someStr). In total, that gives about 500 queries to create.<br><br>Is is 
  posible to write iteration in XQuery for that. Or pass it as a 
  function?<br><br>Thanks,<br>M.<br><br></div></div></blockquote></div>
</blockquote></div><br>