2012-01-12 10 views
0

で解析するには、アンドロイドサックスのXML私はXMLページのtechnique.The構造を解析サックスを通じてXMLページからのデータを解析しようとしている複数の親

<?xml version="1.0" encoding="UTF-8"?> 
<news_magazine> 
    <latest_news> 
     <news> 
      <category_id>5</category_id> 
      <author>Super Admin</author> 
     </news> 
     <news> 
      <category_id>6</category_id> 
      <author>user</author> 
     </news> 
    </latest_news> 
    <categories> 
     <category> 
      <category_id>5</category_id> 
      <category_name>cricket</category_name> 
     </category> 
     <category> 
      <category_id>5</category_id> 
      <category_name>cricket</category_name> 
     </category> 
    </categories> 
</news_magazine> 

どちらニュースタグとカテゴリタグはカテゴリIDが含まれています。どのように私はカテゴリーIDを別々に取ることができますか?

+0

XMLは正しくありません。適切なXMLを更新してください。 –

+0

@siva charan ....更新済み – sarath

+1

XMLからオブジェクトへのマッピングの使用を検討してください。パーザを手作業で構築するのは面倒でエラーが起こりやすいので、例えば、[pulloid](http://code.google.com/p/pulloid/)のようなものを試してみてください。 – Jens

答えて

1

あなたは非常に簡単な方法でこれを行うことができます。 "news"や "category"タグを取得したときに条件をパーザに入れたときに、余分な変数 を保持するだけで、current_parentにそれを割り当てることができます。 とcurrent_parent

public static String current_parent; 
public void startElement(String namespaceURI, String localName, 
      String qName, Attributes atts) { 
    if (localName.equals("news") { 
      current_parent = "news"; 
     // Do your code with news. 
     return; 
    } 
    else if (localName.equals("category") { 
      current_parent = "category"; 
     // Do your code with category. 
     return; 
    } 
    else if (localName.equals("category_id") { 
     if(current_parent.equals("category") 
      { 
     // Do your code with category's category_id. 
      }else if(current_parent.equals("news") 
       { 
     // Do your code with news's category_id. 
      } 
     return; 
    } 
} 
+0

...ありがとうございました。チェックしてください – sarath

+0

ありがとうShashank Agarwal ...... – sarath

1

のも入れた状態よりも、タグ「CATEGORY_ID」を比較し、あなたの好みのデータバインディングを使用してパーサを引っ張って考えてみましょう。この作業は、(例えば)xstreamやjacksonと考えるのは納得のいくものです。あなたが本当に手作業をしたいのであれば、プルパーサー を使用してください(コールバックは受信されませんが、要素を積極的にプルします)。これはJavaプログラムのフローに適応します。