(Q21) Prepare a table of contents for the document "cookbook.xml", containing nested sections and their titles.

LET $b := document("cookbook.xml")
RETURN
   <toc>
      filter($b, $b//section | $b//section/title | $b//section/title/text() )
   </toc>
  • This query introduces the filter() function, which provides very similar functionality to a subset of XSLT template rules.
  • Essentially, it filters out all descendant nodes of those in the first set that aren't in the second, resulting in a tree that consists of a shallow copy of each remaining node preserved in its original hierarchy with respect to the other remaining nodes.
<<<  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15    >>>