0

私はAndroidを初めて使用し、Androidでsax解析を探しています。検索時に例が多すぎますが、いずれも要件を満たしていないため、ここでは、必要なXML構造を投稿します。

<vehicle_appname version="1.0">

<vehicle_selection>

<vehicle_selection_option name="car">

<vehicle_issues>
<vehicle_item id="1" vehicle_filename="honda" vehicle_fileurl="honda13" icon_image="hodaFeb13.png" vehicle_heading="1.png" chapter_count="45"/>
<vehicle_item id="2" vehicle_filename="benz" vehicle_fileurl="Woman_feb13" icon_image="benzfeb13.png" vehicle_heading="1.png" chapter_count="6"/>
</vehicle_issues>

</vehicle_selection_option>

<vehicle_selection_option name="jeep">

<vehicle_issues>
<vehicle_item id="1" vehicle_filename="mahindra" vehicle_fileurl="mahindra" icon_image="mahindra_Feb13.png" vehicle_heading="1.png" chapter_count="45"/>

</vehicle_issues>


</vehicle_selection_option>

</vehicle_selection>
</vehicle_appname>

ここで、Vehicle_selection_option nameはヘッダータグであり、Vehicle_itemタグにはそのヘッダーのコンテンツが含まれ、単一または複数のコンテンツタグが存在する可能性があります。私の要件:

  1. このxmlを解析したいと思います。XML saxの解析は簡単ですが、ここではxmlファイルをネストしているため、Vehicleタグの値はそのヘッダー(vehicle_selection_optionタグ)に適切である必要があります。
  2. この内容をリストビューで表示したい。
4

2 に答える 2

0

オーバーライドstartElementし、endElement必要なのはそれだけです。実際startElementには、要素の開始を通知します。その間endElement、要素の終わりを通知します。vehicle_selection_optionだからあなたは開閉するときに追跡することができます

このようなもの:タイプミスを確認してください

boolean newCar = false;
@override
public void startElement(String uri, String localName,String qName, 
                Attributes attributes) throws SAXException {
   if (qName.equalsIgnoreCase("vehicle_selection_option"))
      newCar = true;
 }

@override
public void endElement(String uri, String localName,String qName, 
                Attributes attributes) throws SAXException {
   if (qName.equalsIgnoreCase("vehicle_selection_option"))
      newCar = false;
 }
于 2013-02-19T11:16:07.260 に答える
0

startElement メソッドの vlaue"vehicle_selection_option" で localValue(startElement のパラメーター) を確認し、車両情報を格納するために使用している Vechile のオブジェクトを作成し、endElement メソッドで同じ文字列を確認し、このオブジェクトをコレクション (つまり ArrayList) に追加します。 )。データ全体を解析した後、コレクション (ArrayList) 内のすべての vechile オブジェクトを取得します。

于 2013-02-19T11:43:35.310 に答える