私は現在、これまで使用したことのない最初のAndroidアプリケーションを作成しています
私が必要としているのは、インターネットからxmlファイルを読み取り、それをリストに入れることです。
(このxml http://pollsdb.com/test.txtを読み、結果をリストに入れるには)
誰かが機能するコードを投稿できれば幸いです
私は現在、これまで使用したことのない最初のAndroidアプリケーションを作成しています
私が必要としているのは、インターネットからxmlファイルを読み取り、それをリストに入れることです。
(このxml http://pollsdb.com/test.txtを読み、結果をリストに入れるには)
誰かが機能するコードを投稿できれば幸いです
XML Pull Parserは、XMLPULLV1APIで提供される解析機能を定義するインターフェースです。
設定されている機能に応じて、次の種類のパーサーがあります。
FEATURE_PROCESS_DOCDECLがtrueに設定されている場合のXML1.0仕様で定義されている非検証パーサーFEATURE_VALIDATIONがtrueの場合(FEATURE_PROCESS_DOCDECLがtrueの場合)XML 1.0仕様で定義されている検証パーサーFEATURE_PROCESS_DOCDECLがfalseの場合(これはデフォルトであり、異なる値が解析を開始する前に必要な必要性を変更する必要があります)その後、パーサーは、XMLドキュメントにDOCDECLが存在しないという条件の下でXML 1.0準拠の非検証パーサーのように動作します(内部エンティティはdefineEntityReplacementText()で定義できます)。この動作モードは、J2MEなどの制約のある環境での動作を目的としています。next()とnextToken()の2つの主要なメソッドがあります。next()は高レベルの解析イベントへのアクセスを提供しますが、nextToken()は低レベルのトークンへのアクセスを許可します。
パーサーの現在のイベント状態は、getEventType()メソッドを呼び出すことで判別できます。最初、パーサーはSTART_DOCUMENT状態です。
next()メソッドは、パーサーを次のイベントに進めます。nextから返されるint値は、現在のパーサーの状態を決定し、getEventType()の後続の呼び出しから返される値と同じです。
次のイベントタイプはnext()によって表示されます
START_TAGXML開始タグが読み取られました。TEXTテキストコンテンツが読み込まれました。テキストコンテンツは、getText()メソッドを使用して取得できます。(検証モードでnext()が無視できる空白を報告しない場合は、代わりにnextToken()を使用してください)END_TAG終了タグが読み取られましたEND_DOCUMENT最初のnext()またはnextToken()(またはその他のnext *()メソッドの後に使用できるイベントはありません)と呼ばれるユーザーアプリケーションは、次の方法でXML宣言からXMLバージョン、スタンドアロン、およびエンコーディングを取得できます。
バージョン:getProperty( "http://xmlpull.org/v1/doc/properties.html#xmldecl-version")は、文字列( "1.0")を返すか、XMLDeclが読み取られなかった場合、またはプロパティがスタンドアロンでサポートされていない場合はnullを返します:getProperty( "http://xmlpull.org/v1/doc/properties.html#xmldecl-standalone")はブール値を返します:スタンドアロン宣言がなかった場合、またはプロパティがサポートされていない場合はnullを返します。それ以外の場合は、standalone = "yes"の場合はブール値(true)を返します。そして、standalone = "no"エンコーディングの場合はBoolean(false):ストリームに不明なエンコーディング(setInputStreamで設定されていない)があり、XMLDeclで宣言されていない場合はgetInputEncoding()nullから取得されます
このAPIを使用するための最小限の例は、次のようになります。
import java.io.IOException;
import java.io.StringReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
public class SimpleXmlPullApp
{
public static void main (String args[])
throws XmlPullParserException, IOException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
} else if(eventType == XmlPullParser.START_TAG) {
System.out.println("Start tag "+xpp.getName());
} else if(eventType == XmlPullParser.END_TAG) {
System.out.println("End tag "+xpp.getName());
} else if(eventType == XmlPullParser.TEXT) {
System.out.println("Text "+xpp.getText());
}
eventType = xpp.next();
}
System.out.println("End document");
}
}
上記の例では、次の出力が生成されます。
Start document
Start tag foo
Text Hello World!
End tag foo
必要に応じてコードを編集してください:)