単純で強力なxml解析器
8381 ワード
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解析器を使うことができ、学習コストが大幅に削減されます.つまり、私の初心です.ハハハハ......現在のバージョンでは実装されていない機能