我目前正在创建我以前从未使用过的第一个 android 应用程序
我需要的是从互联网上读取 xml 文件并将其放入列表中
(阅读此 xml http://pollsdb.com/test.txt并将结果放入列表中)
如果有人可以发布有效的代码,我将不胜感激
我目前正在创建我以前从未使用过的第一个 android 应用程序
我需要的是从互联网上读取 xml 文件并将其放入列表中
(阅读此 xml http://pollsdb.com/test.txt并将结果放入列表中)
如果有人可以发布有效的代码,我将不胜感激
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
根据您的需要编辑代码:)