Useful XQuery queries
XQuery is a query language for querying XML files. This page provides some useful example queries for working with IATI data. A good graphical interface for running these queries is BaseX.
Many of the queries below are also valid XPath, since XPath is a subset of XQuery.
Activities missing information
Which activities are missing the Implementing Org?
Which activities are missing Commitments?
Counting distinct activities
Count number of activities
Count distinct IATI Identifiers
Percentage of activities with unique activity identifiers
count(distinct-values(//iati-activity/iati-identifier)) div count(//iati-activity/iati-identifier) * 100
Count distinct IATI Identifiers for a given reporting organisation
Smallest start date
min(for $d in //activity-date[@type="start-planned" or @type="start-actual"]/@iso-date where ($d != '') return xs:date($d))
Find budgets that have start dates after a certain date (replace yyyymmdd with year, month, and day. e.g. 1st Sept. 2013 would be 20130901])
//budget[number(translate(period-start/@iso-date,'-','')) > yyyymmdd]
Find the activities that have a budget with a start date after a certain date (append /.. )
//budget[number(translate(period-start/@iso-date,'-','')) > yyyymmdd]/..
Find the iati-identifiers of budgets that have start dates after a certain date
//budget[number(translate(period-start/@iso-date,'-','')) > yyyymmdd]/..//iati-identifier