DOMモデルとDom4j

DOMドキュメントオブジェクトモデル

DOM(D ocument O bject M Odel)は、XMLドキュメントの標準メソッドのアクセス操作を定義します。XMLドキュメントのDOMツリービューとして、DOM内のすべての要素の数を読み書きできます。

XMLドキュメントとそのツリー構造:

 Dom4j

Dom4jは、XMLを解析するための使いやすいオープンソースライブラリです。Javaに適用すると、優れたパフォーマンス、強力な機能、使いやすさの特徴があります。Dom4jはXMLをDocumentオブジェクトと見なし、XMLタグはDom4jによってELementオブジェクトとして定義されます。

Dom4jトラバースXML

JavaのDom4jパッケージを使用してXMLトラバーサルを実行します。Dom4jパッケージをダウンロードし(URLをクリック)、独自のjdkバージョンをダウンロードして、対応するDom4jバージョンを選択します。ここでは、java8 +に対応するバージョンを選択します。

それをJavaプロジェクトにインポートし、インポート後にdom4j.jarを右クリックして、bulid path-> add to buildpathを選択します。

次に、パッケージが参照ライブラリに表示され、パッケージがプロジェクトにインポートされたことを示していることがわかります。

以下は、XMLファイル操作にDom4jを使用する単純な例です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd">
<!-- 人力资源管理系统 -->
<hr>
	<employee no="3309">
		<name>张三</name>
		<age>32</age>
		<salary>9200</salary>
		<department>
			<name>会计部</name>
			<addr>XX大厦</addr>
		</department>
	</employee>
		<employee no="3329">
		<name>李四</name>
		<age>32</age>
		<salary>9200</salary>
		<department>
			<name>会计部</name>
			<addr>XX大厦</addr>
		</department>
	</employee>
</hr>

対応するDom4j

package dom4j;

import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class HrReader {
	public void readXml() {
		String file = "................"; //xml文件路径
		// SAXReader类是读取XML文件的核心类
		SAXReader reader = new SAXReader();
		try {
			Document document = reader.read(file);
			Element root = document.getRootElement();
			List<Element> employees = root.elements("employee");
			for (Element employee : employees) {
				System.out.println(employee.elementText("name"));
				System.out.println(employee.attribute("no").getText());
				System.out.println(employee.elementText("age"));
				System.out.println(employee.elementText("salary"));
				Element department = employee.element("department");
				System.out.println(department.elementText("name"));
				System.out.println(department.elementText("addr"));
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		HrReader reader = new HrReader();
		reader.readXml();
	}

}

コンソール出力は次のとおりです。

张三
330932
9200
会计部
XX大厦
李四
332932
9200
会计部
XX大厦

Dom4jには他にも多くの機能があります。詳細については、Dom4japiを参照してください。

おすすめ

転載: blog.csdn.net/qq_41459262/article/details/110754144
おすすめ