ファイルが既にXML形式であるため、これにはJava SE組み込みのJAXB APIを使用できます。サードパーティのライブラリやXPathで新たな学習曲線を立てる必要はありません。また、ファイルの拡張子についても気にしません。必要なのはファイルのInputStream
だけです。
まず、XML文書の構造を準拠JAXBのJavaBeanクラスを作成します。次のように
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());
// ...
これは、XMLファイルのように見えます。 XMLの解析を求めます。 – Lukasz
なぜXMLライブラリを使用しないのですか? jdomと言う? – Jayan
宣言のないXMLのように見えます。もしそうなら、xpathを使用します。 –