0

私は Xmlpull をテストしています。実際に自分のコンピューターでローカルに xml を解析しました。ここで、インターネット上の XML ファイルを解析したいと思います。ファイルは次のとおりです。

http://api.androidhive.info/pizza/?format=xml

しかし、データを XmlPullParser オブジェクトにストリーミングする方法が見つかりません。これを解決する方法に関する一般的なガイドラインを教えてください。

私が考えた別のアプローチは、java io を介して xml ファイルをダウンロードし、ファイルをローカルで解析することでしたが、これはまさに私が達成しようとしていたものではありません。コピーをローカルに保存せずに、xml ファイルをインターネット上で直接解析したいと考えています。

とにかくベストプラクティスを教えてください。

ありがとう、すべてが明確であることを願っています

4

1 に答える 1

1

おそらくあなたの意図は Android API でそれを行うことなので、適切に翻訳してください。

プレーンな Java では、StAX 解析用があり、次のようにfromXmlStreamReaderでインスタンス化できます。InputStreamURLConnnection

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;

public class ParseStream {

  public static void main(String[] args) throws Exception {
    URLConnection connection =
      new URL("http://api.androidhive.info/pizza/?format=xml").openConnection();
    InputStream inputStream = connection.getInputStream();
    XMLStreamReader streamReader =
      XMLInputFactory.newInstance().createXMLStreamReader(inputStream, "UTF-8");
    while (streamReader.hasNext())
      if (streamReader.next() == XMLStreamConstants.START_ELEMENT)
        System.out.println("START_ELEMENT " + streamReader.getName());
  }
}

実際、固定のものを使用するのではなく、URLConnection からエンコーディングを取得するなど、いくらか改良します。

しかし、それはアイデアを与えるはずです。

于 2013-06-18T21:59:20.397 に答える