deliberations = {
var entries = [];
var files = xml.getElementsByTagName("file");
for (var i=0, len=files.length; i<len; i++) {
if (files[i].children[1].tagName!="idno") throw new Error("Expecting idno: "+files[i].children[1])
var file = files[i].children[1].innerHTML;
var meetings = files[i].getElementsByTagName("meeting");
for (var j=0, jlen=meetings.length; j<jlen; j++) {
if (meetings[j].children[1].tagName!="date") throw new Error("Expecting date: "+meetings[j].children[1])
var date = meetings[j].children[1].getAttribute("when");
var deliberations = meetings[j].getElementsByTagName("deliberation");
for (var k=0, klen=deliberations.length; k<klen; k++) {
var deliberation = deliberations[k];
var entry = {
file: file,
meeting: date
};
var commune = deliberation.getElementsByTagName("commune");
entry.commune = commune.length > 0 ? commune[0].innerHTML : "";
var departement = deliberation.getElementsByTagName("departement");
entry.departement = departement.length>0 ? departement[0].innerHTML : "";
entry.numDepartement = departement.length>1 ? Number(departement[1].innerHTML) : -1;
var region = deliberation.getElementsByTagName("region");
entry.region = region.length>0 ? region[0].innerHTML : "";
entry.recommendation = deliberation.getElementsByTagName("recommendation")[0].innerHTML.trim();
entry.report = deliberation.getElementsByTagName("report")[0].innerHTML.trim();
entry.participants = [];
var participants = deliberation.getElementsByTagName("participant");
for (var l=0, llen=participants.length; l<llen; l++) {
console.warn(participants)
entry.participants.push({
"persName": participants[l].children[0].innerHTML,
"occupation": participants[l].children.length>1 ? participants[l].children[1].innerHTML : ""
})
}
var categories = deliberation.getElementsByTagName("category");
for (var l=0, llen=categories.length; l<llen; l++) {
var categoryType = categories[l].getAttribute("type");
var val = categories[l].innerHTML;
if (categoryType in entry) {
entry[categoryType].push(val)
} else {
entry[categoryType] = [val];
}
}
entries.push(entry);
}
}
}
return entries;
}