Java XML処理の基本:読み込み、書き込み、解析を解説
XMLファイルはJavaで直接実行されるのではなく、JavaコードでXMLファイルを読み込んで解析されます。一般的な方法は、DOM、SAX、JAXBなどのAPIを使用してXMLファイルを操作することです。
- DOMを使用すると、XMLドキュメント全体をメモリにロードして、ノードを使用してXMLファイルを操作できる、木構造APIベースの方法です。XMLファイルをDOMで解析するには、まずXMLファイルをメモリにロードし、次にノードを使用してXMLファイルを走査および操作できます。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("file.xml"));
Element root = document.getDocumentElement();
NodeList nodeList = root.getElementsByTagName("tag");
for(int i=0; i<nodeList.getLength(); i++){
Node node = nodeList.item(i);
//处理节点操作
}
- SAXを使用する:SAX(Simple API for XML)は、イベントベースのAPIであり、XMLファイルを解析する際にイベント駆動型の方法を使用します。解析器がXMLファイルを読み込むと、関連するイベントが発生し、開発者はこれらのイベントを処理するための対応ロジックを実装することができます。
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler(){
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
//处理开始标签事件
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
//处理元素内容事件
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
//处理结束标签事件
}
};
parser.parse(new File("file.xml"), handler);
- JAXBを利用すると、JavaオブジェクトとXMLドキュメントをマッピングすることができます。XMLファイルのデータをJavaオブジェクトにマッピングしたり、JavaオブジェクトをXMLファイルに変換したりすることが可能です。
JAXBContext context = JAXBContext.newInstance(Class.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Class obj = (Class) unmarshaller.unmarshal(new File("file.xml"));
上記の方法を使用して、JavaでXMLファイルを操作し、データを読み取り、適切な処理を行うことができます。