Qt Reference Documentation

statisticsInHTML.xq Example File

xmlpatterns/qobjectxmlmodel/queries/statisticsInHTML.xq
 <html>
   <head>
     <title></title>
   </head>
   <body>
     <p>In total the tree has {count($root//QObject)} QObject instances.</p>
     <p>Order by occurrence, the QObjects are:</p>

     <ol>
     {
       for $i in $root/preceding-sibling::metaObjects/metaObject
       let $count := count($root//QObject[@className eq $i/@className])
       stable order by $count descending
       return if($count > 1)
              then <li>{string($i/@className), $count} occurrences</li>
              else ()
     }
     </ol>

     <h1>Properties</h1>
     {
       (: For each QObject, we create a table listing
        : the properties of that object. :)
       for $object in $root//QObject
         return (<h2>{let $name := string($object/@objectName)
                      return if(string-length($name))
                             then $name
                             else "[no name]",
                      '(', string($object/@className), ')'}</h2>,
                 <table border="1">
                   <thead>
                     <tr>
                       <td>Property Name</td>
                       <td>Value</td>
                     </tr>
                   </thead>
                   <tbody>
                   {
                     $object/@*/<tr>
                                  <td>
                                  {
                                    name()
                                  }
                                  </td>
                                  <td>
                                  {
                                    if(data(.))
                                    then string(.)
                                    else "N/A"
                                  }
                                  </td>
                                </tr>
                   }
                   </tbody>
                 </table>)
     }
   </body>
 </html>