package ru.bsuirhelper.android.core.schedule;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
/**
* Created by Влад on 10.10.13.
*/
public class ScheduleParser {
public static ArrayList<Lesson> parseXmlSchedule(File xmlFile) {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
Document doc = null;
try {
dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(xmlFile);
} catch (Exception e) {
e.printStackTrace();
}
doc.getDocumentElement().normalize();
NodeList list = doc.getElementsByTagName("ROW");
ArrayList<Lesson> lessons = new ArrayList<Lesson>();
for (int i = 0; i < list.getLength(); i++) {
Lesson lesson = new Lesson();
Element element = (Element) list.item(i);
NamedNodeMap attrs = element.getAttributes();
for (int j = 0; j < attrs.getLength(); j++) {
Node attribute = attrs.item(j);
//In xml file attribute name group, but group it is keyword of sqlite
if (attribute.getNodeName().equals("group")) {
lesson.fields.put("s_group", attribute.getNodeValue());
continue;
}
lesson.fields.put(attribute.getNodeName(), attribute.getNodeValue());
}
lessons.add(lesson);
}
return lessons;
}
}