XML ファイルの読み取りと書き込み: 初心者ガイド
XML は、データの交換と保存において重要な役割を果たします。 XML ファイルを効率的に管理するには、Java を使用して XML ファイルを読み書きする方法を理解することが不可欠です。このガイドでは、プロセスを段階的に説明します。
XML ファイルの読み取り
XML ファイルを読み取るには、ドキュメント オブジェクト モデル (DOM) を使用します。 。 DOM は、XML ドキュメントを表すツリー状の構造を提供します。その方法は次のとおりです:
必要なライブラリをインポートします:
import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.*; import javax.xml.transform.stream.*; import org.xml.sax.*; import org.w3c.dom.*;
ドキュメント ビルダーを作成します:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder();
XML を解析するファイル:
Document dom = db.parse(xml);
ルート要素を取得します:
Element doc = dom.getDocumentElement();
要素からデータを抽出します:
次のコードは取得します「role1」要素のテキスト値を例:
String role1 = getTextValue(doc.getElementsByTagName("role1"));
XML ファイルの書き込み
XML ファイルを書き込むには、Transformer API を使用します。方法は次のとおりです:
ドキュメントの作成:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document dom = db.newDocument();
ルート要素の作成:
Element rootEle = dom.createElement("roles");
データ要素をroot:
Element e = dom.createElement("role1"); e.appendChild(dom.createTextNode(role1)); rootEle.appendChild(e);
ルート要素をドキュメントに追加します:
dom.appendChild(rootEle);
トランスフォーマーを作成します:
Transformer tr = TransformerFactory.newInstance().newTransformer();
出力の設定プロパティ:
tr.setOutputProperty(OutputKeys.INDENT, "yes"); tr.setOutputProperty(OutputKeys.METHOD, "xml"); tr.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); tr.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "roles.dtd");
DOM をファイルに書き込みます:
tr.transform(new DOMSource(dom), new StreamResult(new FileOutputStream(xml)));
ヘルパー メソッド
このヘルパー メソッドを使用して XML からテキスト値を抽出します要素:
private String getTextValue(NodeList nl) { String value = null; if (nl.getLength() > 0 && nl.item(0).hasChildNodes()) { value = nl.item(0).getFirstChild().getNodeValue(); } return value; }
結論
このガイドでは、DOM と Transformer API を使用した Java での XML ファイルの読み取りと書き込みの包括的な概要を説明しました。データを効果的に操作するには、アクセサーとミューテーターを忘れずに実装してください。
以上がDOM と Transformer API を使用して Java で XML ファイルを読み書きするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。