単純で強力なxml解析器


LiteXml


a lite and power serializable&deserializable xml parser
背景を生成
現在、エンドとエンドの間の通信の主流のデータストリームはjson、xml、protobuffer、byteストリームであり、現在最も流行しているのはjsonであり、構造が簡単で、市場には多くの高速、高効率、安定した解析器があり、例えばgson、fastjsonなど、jsonもプラットフォームにまたがることができ、つまりエンドとは関係なく、主にjsonプロトコルに従って伝送すればよいため、これも現在多くのプラットフォームがjsonをpayloadとして使用している理由である.主流であるが唯一の選択ではないため、現在は多くのエンド間通信、データソースの構成、テンプレート構成などxmlが使用されている.理由はより構造化されているが、jsonに比べて複雑であるが、表現できる情報はより豊富であるが、xmlの解析には多くの人が頭を悩ませている問題であり、jsonのような便利な解析器がなく、手動解析が特に煩雑であり、コード量も大きく、問題が発生しやすい.だから私はいくつかの日の思考を経て、1つの通用することができて、迅速で、効率的で、簡単に使いやすいxml解析器を実現することができなくて、そこで今日の軽量級xml解析器があって、この解析器を通じて、とても速くて、簡単な実現の対象とドキュメントの間の転換、簡単に1つのコードさえあれば、以下私は詳しくこの解析器の内幕を紹介して、どのように見て、1種の熟知した感じがあって、gsonバージョンのxml解析器ではありませんて、そうですね.そうです.ニワトリたち、一緒に不思議な解析器を探しましょう.
初志
  • 単純
  • 高効率
  • 安定
  • 機能
  • オブジェクト生成文書
  • ドキュメントキャプチャ変換オブジェクト
  • 集合生成文書
  • 文書をセット
  • に変換する.
  • ハッシュテーブル生成文書
  • ドキュメントをハッシュテーブル
  • に変換する
    xml解析器で使用されるコアテクノロジー
  • 汎用タイプコンパイル時に特定のタイプ
  • を取得する.
  • 反射
  • きほんず
    詳細分析

    ドキュメントをオブジェクトに変換


    解析するxmlドキュメントは次のとおりです.
    
    <province name="  ">
        <cities>
            <city name="  " code="1001" />
            <city>
                <name>  name>
                <code>1002code>
                <regions>
                    <region>
                        <name>   name>
                    region>
                    <region>
                        <name>   name>
                    region>
                regions>
            city>
        cities>
        <map>
            <key name="aa">bbkey>
            <key name="cc">ddkey>
        map>
        <code>1000code>
        <introduce>
            <title>  title>
            <desc>  desc>
        introduce>
    province>

    変更文書をビジネスオブジェクトprovinceのコードjava
    Province province = new Xml().fromXml(new TypeToken() {}.getType(), xml);
    に生成する

    オブジェクト生成ドキュメント


    上の逆シーケンスオブジェクトをシーケンス化するには、ドキュメントと同じコードが必要です.
    String pXml = new Xml().toXml(province);

    ドキュメントをコレクションに変換


    解析が必要なドキュメントは次のとおりです.
    
    
    <list>
        <book>
            <name>javaname>
            <author>gomsauthor>
        book>
        <book>
            <name>androidname>
            <author>googleauthor>
        book>
    list>

    文書生成集合オブジェクトArrayListのコードjava
    ArrayList books = new Xml().fromXml(new TypeToken>() {}.getType(), booksXml);

    コレクション生成ドキュメント


    上記の逆シーケンスオブジェクトをシーケンス化することが必要なドキュメントです.同じコードjava
    String listXml = new Xml().toXml(books, new TypeToken>(){}.getType());
    です.

    ドキュメントをハッシュ・テーブルに変換


    解析が必要なドキュメントは次のとおりです.
    
    
    <map>
        <key name="aa">bbkey>
        <key name="cc">ddkey>
    map>

    文書は、ハッシュ表オブジェクトHashMapのコードを生成する
    HashMap map = new Xml().fromXml(new TypeToken>() {}.getType(),mapXml);

    ハッシュ表生成ドキュメント


    上記の逆シーケンスオブジェクトをシーケンス化することが必要なドキュメントです.同じコードjava
    String mXml = new Xml().toXml(map, new TypeToken>(){}.getType());
    です.
    ニワトリたちは強い感じがするのではないでしょうか.gson解析new Gson().fromJson()に似ているのではないでしょうか.このような感じは間違いありません.そうすれば、gsonを使うだけでxml解析器を使うことができ、学習コストが大幅に削減されます.つまり、私の初心です.ハハハハ......
    現在のバージョンでは実装されていない機能
  • ハッシュテーブルオブジェクトストレージ
  • 集合マルチレベル処理(このようなシーンは少ない)
  • 解析器構成インタフェース(主により柔軟なビジネス処理能力を提供する)
  • 次のバージョンのターゲット
  • 完備機能
  • 発見されたバグを修復する
  • コード再構成
  • コード性能最適化
  • ソースのダウンロード
  • ダウンロード
  • github表示
  • 次のQRコードをスキャンして、私の微信を加えて、一緒に交流して勉強します!