`

XmlPull解析数据

阅读更多
1.返回一个参数时
private String getResultByIsbn(String isbn) throws ClientProtocolException,
IOException, IllegalStateException, XmlPullParserException {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url + isbn);
HttpResponse response = client.execute(get);
return getBookInfo(response.getEntity().getContent());
}

private String getBookInfo(InputStream inputStream)
throws XmlPullParserException, IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(inputStream, "UTF-8");
StringBuilder builder = new StringBuilder();

for (int i = parser.getEventType(); i != XmlPullParser.END_DOCUMENT; i = parser
.next()) {
if (i == XmlPullParser.START_TAG
&& parser.getName().equals("title")) {
builder.append("名称: ").append(parser.nextText());
break;
}
}

return builder.toString();
}
2.显示详细内容时
try {
bookInfo = getResultByIsbn(this.getIntent().getExtras().getString(
"ISBN"));

} catch (Exception e) {
throw new RuntimeException(e);
}
resultWeb = (WebView) this.findViewById(R.id.resultWeb);
this.resultWeb.getSettings().setSupportZoom(false);
this.resultWeb.getSettings().setJavaScriptCanOpenWindowsAutomatically(
true);
this.resultWeb.getSettings().setJavaScriptEnabled(true);

this.resultWeb.loadUrl("file:///android_asset/results.html");

this.resultWeb.addJavascriptInterface(new Object() {
public String getBookName() {
return bookInfo.getName();
}

public String getBookSummary() {
return bookInfo.getSummary();
}

public String getBookImageUrl() {
return bookInfo.getImageUrl();
}

public String getBookAuthor() {
return bookInfo.getAuthor();
}
}, "searchResult");
}

private BookInfo getResultByIsbn(String isbn)
throws ClientProtocolException, IOException, IllegalStateException,
XmlPullParserException {
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url + isbn);
HttpResponse response = client.execute(get);
return getBookInfo(response.getEntity().getContent());
}

private BookInfo getBookInfo(InputStream inputStream)
throws XmlPullParserException, IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(inputStream, "UTF-8");
BookInfo bookInfo = new BookInfo();

for (int i = parser.getEventType(); i != XmlPullParser.END_DOCUMENT; i = parser
.next()) {
if (i == XmlPullParser.START_TAG
&& parser.getName().equals("attribute")
&& parser.getAttributeValue(0).equals("title")) {
bookInfo.setName(parser.nextText());
Log.v("soubook", "title>>" + bookInfo.getName());
continue;
}
if (i == XmlPullParser.START_TAG
&& parser.getName().equals("attribute")
&& parser.getAttributeValue(0).equals("author")) {
bookInfo.setAuthor(parser.nextText());
Log.v("soubook", "author>>" + bookInfo.getAuthor());
continue;
}
if (i == XmlPullParser.START_TAG
&& parser.getName().equals("summary")) {
bookInfo.setSummary(parser.nextText());
Log.v("soubook", "summary>>" + bookInfo.getSummary());
continue;
}
if (i == XmlPullParser.START_TAG && parser.getName().equals("link")) {
if (parser.getAttributeValue(1).equals("image")) {
bookInfo.setImageUrl(parser.getAttributeValue(0));
Log.v("soubook", "iamge>>" + bookInfo.getImageUrl());
}
continue;
}
}
Log.v("soubook", ">>>>> parse end.");

return bookInfo;
}
分享到:
评论

相关推荐

    对xml文件进行xmlpull解析jar包

    XMLPull解析的优点在于其低内存占用和高效性能,因为它是基于拉取模型,解析器只在需要时读取XML数据。这对于处理大型XML文件或者在资源有限的环境中尤其有用。同时,由于XMLPull解析器不依赖DOM(Document Object ...

    复杂XmlPull解析Demo

    在实际应用中,XmlPull解析常用于读取配置文件、解析网络返回的XML数据等场景。它的灵活性和低资源消耗使其成为处理XML文档的首选方案之一。 总结来说,“复杂XmlPull解析Demo”是一个学习和实践如何使用XmlPull...

    XmlPull解析

    但在处理大量XML数据或者需要节省资源的情况下,XmlPull解析是值得推荐的选择。 总的来说,XmlPull解析是XML处理的一种实用技术,尤其适用于移动开发和嵌入式系统。通过理解并掌握这种解析方式,开发者可以更高效地...

    XmlPull解析XML

    总之,XMLPull解析是Android开发中处理XML数据的有效方式,它简化了XML解析过程,降低了内存消耗,提高了应用程序性能。通过理解XML事件和使用`XmlPullParser`接口,开发者可以高效地解析XML输入流,提取所需信息。

    xmlpull(java新型xml解析技术)

    在描述中提到的jar包,很可能是XMLPull解析库的实现,例如XMLPull_1_1_3_4c.jar,这个版本的XMLPull库提供了Java API,使得开发者可以直接在Java项目中集成并使用XMLPull解析XML。 标签“xmlpull”、“xml解析”和...

    XMLPullProject(XMLPull读取)

    XMLPullProject是一个基于XMLPull解析技术的项目,旨在帮助初学者理解并掌握XML数据的读取方式。XMLPull是一种轻量级的解析XML文档的方法,它允许开发者在没有额外依赖库的情况下高效地处理XML数据。这个项目通过源...

    xmlpull-1.1.3.1.jar

    总之,"xmlpull-1.1.3.1.jar" 提供了XMLPull解析器的实现,是Android开发中处理XML数据的理想选择,尤其是当内存管理是一个重要考虑因素时。通过流操作文件的方式,它能有效地处理XML文档,提高应用程序的效率和响应...

    android xmlpull详细源代码

    总之,XMLPull解析是Android开发中处理XML数据的一种高效方法。通过掌握其核心概念和API,开发者可以灵活地解析和构建XML文档,同时减少对内存资源的消耗。在实践中,不断调试和优化代码,能够进一步提升解析效率,...

    xmlpull_1_0_5解决 org/xmlpull/v1/XmlPullParserException

    XStream是一个用于XML和Java对象之间进行序列化和反序列化的库,它依赖于XMLPull解析器来处理XML数据。 在“xmlpull_1_0_5”这个压缩包中,很可能包含了XMLPull解析库的1.0.5版本。这个版本可能修复了一些已知的...

    用pullXML解析本地数据并存在本地

    在Android开发中,XML是一种常见的数据交换格式,用于存储和传输结构化数据。PullXML解析器是Android系统提供的...理解XMLPull解析器的工作原理和API,能够帮助开发者更有效地处理XML数据,提高应用的性能和用户体验。

    xml解析+kxml2+xmlpull

    在Android开发中,KXML2库实现了XMLPULL解析接口,使得开发者可以用KXML2的API进行Pull解析。这种结合使用的方式既保留了KXML2的易用性,又具备了Pull解析的高效性。 5. **使用步骤**: - 引入KXML2库:在Android...

    xmlPull的jar包.zip

    XMLPull是Java平台上的轻量级XML解析技术,它提供了高效、低...kxml2-2.3.0.jar和xmlpull-1.1.3.1.jar这两个jar包构成了XMLPull解析的基础,可以帮助开发者轻松地处理XML数据,降低系统资源消耗,提高程序的运行效率。

    xmlpull-1.1.3.1.jar和kxml2-2.3.0.jar

    XMLPULL解析是一种轻量级、高效的处理XML文档的方法,尤其适用于资源有限的移动设备或嵌入式系统。它提供了一种编程接口,允许开发者在Java环境中读取和解析XML文档,而无需依赖完整的DOM(Document Object Model)...

    xmlpull_doc_src

    你可以看到如何实现XMLPull解析器的核心类,如`XMLPullParser`,它是处理XML文档的主要接口,提供了诸如next()、getName()、getText()等方法来获取XML文档的结构和内容。 "xmlpull_doc"目录则包含了XMLPull的文档...

    xmlpull-1.1.3.1.jar和xmlpull-1.1.3.1.jar

    XMLPull是处理XML的一种轻量级、高性能的解析方式,它提供了一种统一的接口来读取XML文档,无论底层实现是基于SAX(Simple API for XML)还是DOM(Document Object Model)。XMLPull API的设计目标是减少解析XML时的...

    Xmlpull 源代码

    XMLPull是XML解析的一种轻量级、高效能的处理方式,尤其适合于资源有限的设备或内存敏感的应用。XMLPull API提供了一种基于事件的解析模型,允许开发者以拉(Pull)的方式处理XML文档,而不是像DOM那样将整个文档...

    xmlpull.zip

    XMLPull是XML(eXtensible Markup Language)解析的一种轻量级、低内存占用的解析方式,它在处理大量XML数据时特别有用。这个“xmlpull.zip”压缩包包含了两个关键的Java库文件,用于在Java环境中进行XML解析:kxml2...

    xmlPull源码

    XML Pull解析器在Android中的主要接口是`org.xmlpull.v1.XmlPullParser`和`org.xmlpull.v1.XmlPullParserFactory`。首先,我们需要通过`XmlPullParserFactory`创建一个`XmlPullParser`实例。工厂类提供了设置解析器...

    3.8 解析XML

    - 解析数据:在事件处理过程中,提取元素、属性、文本等内容,进行业务逻辑处理。 - 结束解析:调用解析器的结束解析方法,释放资源。 4. 选择解析器: XMLPull适合需要逐个处理XML元素且内存受限的情况,而XML...

Global site tag (gtag.js) - Google Analytics