加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用XmlResourceParser轻松获取简单xml节点属性

发布时间:2020-12-16 02:12:35 所属栏目:百科 来源:网络整理
导读:一.概述 :作为一种可扩展标记语言, XML以其较强的互操作性,可扩展性和规范统一性等优点,得到广泛的应用,也是各种应用程序之间进行数据传输的最常用的工具。 二.XML文件特性 : XML 是 可扩展标记语言(Extensible Markup Language) 的缩写,其中的 标



一.概述:作为一种可扩展标记语言, XML以其较强的互操作性,可扩展性和规范统一性等优点,得到广泛的应用,也是各种应用程序之间进行数据传输的最常用的工具。

二.XML文件特性

XML可扩展标记语言(Extensible Markup Language)的缩写,其中的标记(markup)是关键部分。

您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息,结构清晰,看上去比较明了

比如:


由上面的xml结构可以看出,xml由英文单词命名的节点,子节点及其对应的元素构成,结构简单,

可以把第一行当作它扎根的“土地”。XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点

每个子节点又可以有自己的子节点。节点编号由0开始,

三.获取xml文件节点属性

今天要看的xml文件:

<PA>
<Site No="0" Name="多" Port="5000" IP="192.168.2.1" DeviceAddress="1" adjustableBR="1" />
<Site No="1" Name="A1" Port="5000" IP="192.168.2.1" DeviceAddress="2" adjustableBR="0" />
<Site No="2" Name="C" Port="5000" IP="192.168.2.1" DeviceAddress="3" adjustableBR="1" />
.....
<Site No="22" Name="KK" Port="5000" IP="192.168.2.1" DeviceAddress="11" adjustableBR="1" />
<Site No="23" Name="L" Port="5000" IP="192.168.2.1" DeviceAddress="12" adjustableBR="1" />
</PA>


简单了解了xml文件的结构后,我们可以很清楚的看明白这个xml文件。上面这个xml文件的根节点和子节点很清楚,接下来开始解析这个文件,取得我们想要的内容

首先。我把这个文件存放在工程下面..res/xml文件夹下的r1.xml,

拿到这个xml文件

//1.得到Resources资源
Resources r = getResources();
//通过Resources,获得XmlResourceParser实例
XmlResourceParser xrp = r.getXml(R.xml.r1); //获取xml源文件


//2.在获取节点属性前,加一个判断,判断文章的尅是和结束

//如果没有到文件尾继续执行

while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) {
//如果是开始标签
if (xrp.getEventType() == XmlResourceParser.START_TAG) {
//获取标签名称
String name = xrp.getName();
//判断标签名称是否等于Site
if(name.equals("Site")){
counter++;
//获得标签属性追加到StringBuilder中
sb.append("第:"+counter+"条信息:"+"n");
sb.append("顺序:"+xrp.getAttributeValue(0)+"n");
sb.append("名字:"+xrp.getAttributeValue(1)+"n");
sb.append("端口号:"+xrp.getAttributeValue(2)+"n");
sb.append("Ip地址:"+xrp.getAttributeValue(3)+"n");
sb.append("模拟机地址:"+xrp.getAttributeValue(4)+"n");
sb.append("BR:"+xrp.getAttributeValue(5)+"nn");
list.add(sb);
}
} else if (xrp.getEventType() == XmlPullParser.END_TAG) {
} else if (xrp.getEventType() == XmlPullParser.TEXT) {
}
//下一个标签
xrp.next();
}


//3.运行结果:





上面经过简单的几步就取到我们想要的节点属性值,

在安卓的学习和开发过程中,不可避免会遇到过很多麻烦和难题,每次都是网上求救,众多前辈的博客给了我很大帮助和启发, 希望写下自己的笔记,和大家分享,如有纰漏之处,还请各位不吝赐教!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读