private List<Span> readSpans(File file) { final List<Span> spans = Lists.newArrayList(); try { final DocumentBuilder builder = factory.newDocumentBuilder(); final Document document = builder.parse(file); final Element root = document.getDocumentElement(); final NodeList nodes = root.getElementsByTagName("span"); for (int i = 0; i < nodes.getLength(); i++) { final Element element = Element.class.cast(nodes.item(i)); final Span span = new Span(); span.setType(element.getAttribute("type")); span.setStart(Integer.parseInt(element.getAttribute("start"))); span.setEnd(Integer.parseInt(element.getAttribute("end"))); span.setValue(element.getTextContent()); spans.add(span); } } catch (IOException e) { throw new IllegalStateException(e); } catch (ParserConfigurationException e) { throw new IllegalStateException(e); } catch (SAXException e) { throw new IllegalStateException(e); } return spans; }