0

我目前正在创建我以前从未使用过的第一个 android 应用程序

我需要的是从互联网上读取 xml 文件并将其放入列表中

(阅读此 xml http://pollsdb.com/test.txt并将结果放入列表中)

如果有人可以发布有效的代码,我将不胜感激

4

1 回答 1

0

XML Pull Parser 是一个定义 XMLPULL V1 API 中提供的解析功能的接口。

根据设置的功能,有以下不同类型的解析器:

当 FEATURE_PROCESS_DOCDECL 设置为 true 时,XML 1.0 规范中定义的非验证解析器 当 FEATURE_VALIDATION 为真时(这意味着 FEATURE_PROCESS_DOCDECL 为真),当 FEATURE_PROCESS_DOCDECL 为假(这是默认值并且如果不同的值是required 必须在开始解析之前更改)然后解析器的行为类似于 XML 1.0 兼容的非验证解析器,条件是 XML 文档中不存在 DOCDECL(内部实体仍然可以使用 defineEntityReplacementText() 定义)。这种操作模式适用于 J2ME 等受限环境中的操作。有两个关键方法:next() 和 nextToken()。next() 提供对高级解析事件的访问,而 nextToken() 允许访问较低级别的令牌。

解析器的当前事件状态可以通过调用 getEventType() 方法来确定。最初,解析器处于 START_DOCUMENT 状态。

next() 方法将解析器推进到下一个事件。从 next 返回的 int 值确定当前解析器状态,并且与从以下对 getEventType () 的调用返回的值相同。

next() 可以看到以下事件类型

START_TAG 读取了一个 XML 开始标记。TEXT 文本内容被读取;可以使用 getText() 方法检索文本内容。(在验证模式下,next() 不会报告可忽略的空格,请改用 nextToken())END_TAG 读取了结束标记 END_DOCUMENT 在第一个 next() 或 nextToken()(或任何其他 next*() 方法之后没有更多事件可用) 被称为用户应用程序可以通过以下方式从 XML 声明中获取 XML 版本、独立和编码:

版本:getProperty("http://xmlpull.org/v1/doc/properties.html#xmldecl-version") 如果未读取 XMLDecl 或不支持独立的属性,则返回 String ("1.0") 或 null:getProperty( "http://xmlpull.org/v1/doc/properties.html#xmldecl-standalone") 返回布尔值:如果没有独立声明或不支持属性则返回布尔值,否则返回布尔值(true) 如果独立=“是”和 Boolean(false) 当 Standalone="no" 编码:从 getInputEncoding() 获得 null 如果流具有未知编码(未在 setInputStream 中设置)并且未在 XMLDecl 中声明

使用此 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

根据您的需要编辑代码:)

于 2012-06-16T01:24:00.247 回答