0

私は次のようにクライアントから提供されたxmlを持っています:

<?xml version='1.0' encoding='UTF-8' ?><quizzes updatetimestamp='2012-08-01 06:24'><quiz q_id='1'>
<q_name>Airplane!</q_name >
<q_appleid>com.patelware.moviesquiz.free</q_appleid>
<q_description>"Roger, Roger"</q_description>
<q_urlicon>http://www.inall3.com/king/icons/airplane_icon.png</q_urlicon>
<q_urlmainimg>http://www.inall3.com/king/icons/airplane_main.png</q_urlmainimg>
<q_urldb>http://www.inall3.com/king/dbs/airplane.xml</q_urldb>
<q_timesofupload>2011-05-01 00:00:00</q_timesofupload>
<q_priceindollar>0.00</q_priceindollar>

<q_cattype>Comedy</q_cattype>
<q_thighscore>http://www.inall3.com/hs/highscoreairplane.php?action=gethighscores&amp;mode=1</q_thighscore>
<q_phighscore>http://www.inall3.com/hs/highscoreairplane.php?action=gethighscores&amp;mode=2</q_phighscore>
</quiz>

しかし、SAXパーサーを使用して解析すると、すべてが正しく返されますが、解析しようとすると、<q_thighscore>または<q_phighscore>を返すだけmode=1mode=2、完全なリンクを解析したいのですが、問題はどこにあり、今何をすべきですか?

4

2 に答える 2

0

saxのデフォルトのハンドラーを使用することをお勧めします。それが機能するかどうかを確認します。そうでない場合は、デフォルトのハンドラーを拡張し、値を正しく格納するためにこのメソッドの動作をオーバーライドする必要があります。myURLStringは、拡張クラスで定義する変数です。この変数は、たとえばendElementメソッドでアクセスできます。ここでこれを完全に制御できます。

したがって、1つの方法は、org.xml.sax.helpers.DefaultHandlerを拡張することです。

以下のようにオーバーライドします

   protected String myValueString;


   @Override
   public void characters(char[] ch, int start, int length) throws SAXException
   {
    super.characters(ch, start, length);  // deal with escape values here.
            myValueString = ...

    }

then inside   endElement(){


   check if matches your type and if so use myValueString;
于 2012-08-02T19:32:47.630 に答える
0

私はそれを解決し、SAXパーサーの代わりにプルパーサーを使用しましたが、機能しました:)

于 2012-08-02T21:26:23.093 に答える