前書き: 同社の APP は長い間存在しており、以前の インターフェース の結果は XML を介して処理されており、プロジェクト内では全員がさまざまな方法で XML を処理しており、統一された処理方法がありません。はアプリケーションで非常に面倒なので、投稿者はプロジェクトを開発するたびに、自分の時間を節約するために、他の人の XML 解析方法を勉強せず、XML に出会うたびに DOM4J を使用して解析します。
DOM、SAX、JDOMなど、XMLを解析する方法はたくさんあります。使い方や原理については、ここでは詳しく説明しません(追記:投稿者も使い方や原理を知りません) 。この記事ではDOM4Jの簡単な操作と使い方を中心に説明します。
DOM4J の概要
dom4j は Java XML API、jdom のアップグレードであり、XML ファイルの読み取りと書き込みに使用されます。 dom4j は、優れたパフォーマンス、強力な機能、そして非常に使いやすい JavaXML API であり、そのパフォーマンスは Sun 社の公式 dom テクノロジーを上回っており、SourceForge で入手できます。
Dom4j は、XML、XPath、XSLT 用の使いやすいオープンソース ライブラリです。 Java プラットフォームに適用され、Java コレクション フレームワークを採用し、DOM、SAX、および JAXP を完全にサポートします。
DOM4J の使用法を紹介する簡単な例を次に示します。
注: DOM4J を使用して XML を解析するには、DOM4J jar パッケージをプロジェクトに導入する必要があります
XML ファイル
<Response T='203' T1='6' TaskID='20130800001963' MediaNum='3' Result = '1' Desc='查询成功!' > <Media Name='IMG_20130425_141838.jpg' Mediasource ='1' Type ='1' Code='/9j/4AAQSkZJRgABAQA0'>图片1</Media> <Media Name='IMG_20130425_141838.jpg' Mediasource ='2' Type ='1' Code='/9j/4AAQSkZJRgABAQA0'>图片2</Media> <Media Name='IMG_20130425_141838.jpg' Mediasource ='3' Type ='1' Code='/9j/4AAQSkZJRgABAQA0'>图片3</Media> </Response>
DOM4J の使用法の詳細な説明
ステップ 1: XML ファイルの読み込み
XML の読み込みは 2 つに分けられます主な方法
1、ファイルのパスアドレスを直接ロード
2、文字列xml形式をロード(このメソッドは主にサーバーの戻り結果で使用されます)
1.1、ファイルパスを直接ロード
SAXReader reader = new SAXReader(); Document document = null; try { document = reader.read(new File("E://CZBK//day01//caseUp.xml")); } catch (DocumentException e) { e.printStackTrace(); }
1.2、 xml 形式の文字列を読み込みます
SAXReader reader = new SAXReader(); Document document = null; try { //result是需要解析的字符串 //解析字符串需要转换成流的形式,可以指定转换字符编码 document = reader.read(new ByteArrayInputStream(result.getBytes("UTF-8"))); } catch (DocumentException e) { e.printStackTrace(); }
ステップ 2: XML を解析する
XML を解析する前に、まず XML の構造名を理解しておくと、XML を解析するのに非常に役立ちます
ノードとは何ですか?要素とは何ですか? 属性(属性)とは何ですか?テキスト値とは何ですか?
ノード: 「レスポンス」、「メディア」はノードと呼ばれます。
要素: 完全なタグで終わり、要素と呼ばれ、要素の内容全体が含まれます。例: dacf8c97ef3ca03c09586d5e039c32d1図 1
属性: ノードの属性値、ノードの内容に説明を追加します。例: T='203' T1='6' TaskID='20130800001963' MediaNum='3' Result = '1' Desc='Query success!'
テキスト値: "Picture 1" をテキスト値と呼びます。
プロジェクトでは、要素、属性、テキスト値を中心に操作するだけなので、これら 3 つの部分の値メソッドをマスターすれば、XML 解析もマスターできます。
2.1. ルートノードを取得します
//获取整个文档 Element rootElement = document.getRootElement();
rootElementには、XML文書全体の内容、つまりResponseタグに含まれるすべての内容が含まれます
2.2. Responseノードの属性値を取得します
//获取Response节点的Result属性值 String responseResult = rootElement.attributeValue("Result");
2.3. Media要素
//获取第一个Media元素 Element mediaElement = rootElement.element("Media"); //获取所有的Media元素 List allMeidaElements = rootElement.elements("Media");
2.4. Media属性値を取得
//获取第一个Media元素的Name属性值 String mediaName = mediaElement.attributeValue("Name"); //遍历所有的Media元素的Name属性值 for (int i = 0; i < allMeidaElements.size(); i++) { Element element = (Element) allMeidaElements.get(i); String name = element.attributeValue("Name"); }
2.5. Mediaタグのテキスト値を取得
//获取第一个Meida元素的文本值 String value = mediaElement.getText();
実行結果
1. たくさんあります。 XML の解析方法をそれぞれマスターする必要はありません。性能の違いについては、建物の本体には表示されませんし、この質問に答えることもできません。 2. DOM4J には多数の API がありますが、この記事では最も基本的でよく使用される API のみを紹介しますので、興味があればご自身で調べて使用してください。
以上がXML 解析の DOM4J 解析のサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。