XML 解析の DOM4J 解析のサンプル コード

黄舟
リリース: 2017-03-18 17:00:46
オリジナル
1595 人が閲覧しました

前書き: 同社の 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=&#39;203&#39; T1=&#39;6&#39; TaskID=&#39;20130800001963&#39; MediaNum=&#39;3&#39; Result = &#39;1&#39; Desc=&#39;查询成功!&#39; >
    <Media Name=&#39;IMG_20130425_141838.jpg&#39; Mediasource =&#39;1&#39; Type =&#39;1&#39; Code=&#39;/9j/4AAQSkZJRgABAQA0&#39;>图片1</Media>
    <Media Name=&#39;IMG_20130425_141838.jpg&#39; Mediasource =&#39;2&#39; Type =&#39;1&#39; Code=&#39;/9j/4AAQSkZJRgABAQA0&#39;>图片2</Media>
    <Media Name=&#39;IMG_20130425_141838.jpg&#39; Mediasource =&#39;3&#39; Type =&#39;1&#39; Code=&#39;/9j/4AAQSkZJRgABAQA0&#39;>图片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 を解析するのに非常に役立ちます

ノードとは何ですか?要素とは何ですか? 属性(属性)とは何ですか?テキスト値とは何ですか?

ノード: 「レスポンス」、「メディア」はノードと呼ばれます。

要素: 完全なタグで終わり、要素と呼ばれ、要素の内容全体が含まれます。例: 図 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート