Поскольку файл уже имеет формат XML , вы можете просто использовать для этого встроенный в Java SE JAXB API.Нет необходимости в сторонних библиотеках или окунуться в другую новую кривую обучения с XPath.Это также не заботится о расширении файла.Все, что ему нужно - это просто InputStream
файла.
Сначала создайте javabean-класс JAXB, который соответствует структуре документа XML:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="DOC")
@XmlAccessorType(XmlAccessType.FIELD)
public class Doc {
@XmlElement(name="DOCNO")
private Integer docNo;
@XmlElement(name="DOCTYPE")
private String docType;
@XmlElement(name="TXTTYPE")
private String txtType;
@XmlElement(name="AUTHOR")
private String author;
@XmlElement(name="DATE") // You could use a custom adapter if you want java.util.Date.
private String date;
@XmlElement(name="TEXT")
private String text;
// Add/generate getters, setters and other javabean boilerplate.
}
Затем вы можете проанализировать его следующим образом:
JAXBContext jaxb = JAXBContext.newInstance(Doc.class);
InputStream input = new FileInputStream("/path/to/your/file.txt");
Doc doc = (Doc) jaxb.createUnmarshaller().unmarshal(input);
System.out.println(doc.getDocNo());
System.out.println(doc.getDocType());
// ...