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里调用.提前感谢.

这个很简单啊xml解析,pull解析
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 常见问题汇总

Android Studio多渠道打包

在 android studio 中使用 Jsoup 解析 xml 数据

在 Android Studio 中使用 AsyncTask 解析在线 XML 文件时出现 NetworkOnMainThreadException

android studio解决warning: Ignoring InnerClasses attribute for an anonymous inner class

Android Studio 到 React Native