sax parser
を使用してXMLを解析する方法XMLドキュメントを解析する場合、考慮すべき2つの主要な実装があります。 xml.saxおよびandroid.sax。各実装には、独自の利点と短所があります。開始/エンド要素や文字データなど、さまざまなXMLイベントのイベントリスナーを手動で処理する必要があります。このアプローチはより柔軟性を提供しますが、より冗長で反復的なコードにつながる可能性があります。 // XMLデータを保存するには、pojos(プレーン古いJavaオブジェクト)を初期化します プライベートチャネルチャネル。 プライベートアイテムアイテム; プライベートアイテムアイテム; private boolean initem = false; プライベートStringBuilderコンテンツ。 @オーバーライド public void startelement(string uri、string localname、string qname、属性atts)saxexception { content = new StringBuilder(); if(localname.equalsignorecase( "channel")){ Channel = new Channel(); } else if(localname.equalsignorecase( "item")){ reticem = true; item = new item(); } } // ...残りのイベントリスナー... }
android.sax実装
android.sax実装は、ルテレメントと要素オブジェクトを使用してXML構造の前面を定義することにより解析を簡素化します。これらの要素にイベントリスナーが追加され、特定のデータパターンが処理されます。このアプローチはコードの繰り返しを減らしますが、明確に定義されたXML構造が必要です。 // XMLデータを保存するPojos プライベートチャネルチャネル。 プライベートアイテムアイテム; プライベートアイテムアイテム; public Example(){ items = new item(); } //要素イベントのイベントリスナーを追加します // ...残りのコード... }
public class ExampleHandler extends DefaultHandler { // Initialize POJOs (Plain Old Java Objects) to store XML data private Channel channel; private Items items; private Item item; private boolean inItem = false; private StringBuilder content; @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { content = new StringBuilder(); if (localName.equalsIgnoreCase("channel")) { channel = new Channel(); } else if (localName.equalsIgnoreCase("item")) { inItem = true; item = new Item(); } } // ... Remaining event listeners ... }比較
android.sax:
public class ExampleHandler extends DefaultHandler { // Initialize POJOs (Plain Old Java Objects) to store XML data private Channel channel; private Items items; private Item item; private boolean inItem = false; private StringBuilder content; @Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { content = new StringBuilder(); if (localName.equalsIgnoreCase("channel")) { channel = new Channel(); } else if (localName.equalsIgnoreCase("item")) { inItem = true; item = new Item(); } } // ... Remaining event listeners ... }プロ:XML構造定義の単純化された解析、削減コードRepetition
Cons:複雑なXMLの処理における柔軟性が限られていますstructures
org.xml.sax:
結論
android.saxとorg.xml.saxの選択は、XML構造の複雑さと望ましい柔軟性に依存します。シンプルで明確に定義されたXML構造のために、Android.Saxは単純化された解析アプローチを提供します。さまざまなレベルの繰り返しタグを持つより複雑な構造のために、org.xml.saxは、低レベルのイベント処理でより大きな制御を提供します。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3