android studio 的xml数据获取
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android studio 的xml数据获取相关的知识,希望对你有一定的参考价值。
已经搞了两天,快疯掉了,敬请高人指点,不胜感激.
在网上有一个地址,发出请求会得到如下的返回xml信息,
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<resultset type="map">
<result type="value">true</result>
<dataset type="list">
<data type="map">
<result type="value">true</result>
<key type="value">instantPower</key>
<value type="value">2456</value>
</data>
</dataset>
</resultset>
现在需要取得2456的那个值并存入变量待用.需要调用AsyncTask,问题是如何找到那个值并且存入变量,在mainactivity里调用.提前感谢.
public class PullBookParser
@Override
public List<Book> parse(InputStream is) throws Exception
List<Book> books = null;
Book book = null;
// XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
// XmlPullParser parser = factory.newPullParser();
XmlPullParser parser = Xml.newPullParser(); //由android.util.Xml创建一个XmlPullParser实例
parser.setInput(is, "UTF-8"); //设置输入流 并指明编码方式
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
switch (eventType)
case XmlPullParser.START_DOCUMENT:
books = new ArrayList<Book>();
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("book"))
book = new Book();
else if (parser.getName().equals("id"))
eventType = parser.next();
book.setId(Integer.parseInt(parser.getText()));
else if (parser.getName().equals("name"))
eventType = parser.next();
book.setName(parser.getText());
else if (parser.getName().equals("price"))
eventType = parser.next();
book.setPrice(Float.parseFloat(parser.getText()));
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("book"))
books.add(book);
book = null;
break;
eventType = parser.next();
return books;
参考技术A 相信你看了这个就会了
http://sinye.iteye.com/blog/763949
还有,其实百度搜搜一大把的 参考技术B XML有专门的解析器的,默认使用pull解析,这个解析起来很简单的。具体使用方法可以百度一下
在 android studio 中使用 Jsoup 解析 xml 数据
【中文标题】在 android studio 中使用 Jsoup 解析 xml 数据【英文标题】:Parsing xml data with Jsoup in android studio 【发布时间】:2021-12-24 04:20:48 【问题描述】:我的以下代码似乎不起作用:
private fun xmlParse_Jsoup()
thread
val doc = Jsoup.parse("http://xmlweather.vedur.is/?op_w=xml&type=forec&lang=is&view=xml&ids=1;422")
val listItems: Elements = doc.select("ul.list > li")
for (item in listItems) System.out.println(item.text())
val strings = doc.getElementsByTag("forecast")
目前我只是试图读取文件,但最终输出将是 、ftime、F、D、T 和 W 标签下的所有标签。
【问题讨论】:
【参考方案1】:首先,选择所有forecast
元素:
val listItems: Elements = doc.select("forecast")
接下来,遍历您的列表并打印所需的孩子:
for (item in listItems)
System.out.println(item.select("ftime"));
System.out.println(item.select("f"));
System.out.println(item.select("d"));
System.out.println(item.select("t"));
System.out.println(item.select("w"));
如果你只想打印包含在子节点内的文本,替换上面的语句:
System.out.println(item.select(/* ... */));
与:
System.out.println(item.select(/* ... */).text());
【讨论】:
以上是关于android studio 的xml数据获取的主要内容,如果未能解决你的问题,请参考以下文章
在 android studio 中使用 Jsoup 解析 xml 数据
在 Android Studio 中使用 AsyncTask 解析在线 XML 文件时出现 NetworkOnMainThreadException
android studio解决warning: Ignoring InnerClasses attribute for an anonymous inner class