一.概述:作为一种可扩展标记语言, XML以其较强的互操作性,可扩展性和规范统一性等优点,得到广泛的应用,也是各种应用程序之间进行数据传输的最常用的工具。
二.XML文件特性:
XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的标记(markup)是关键部分。
您可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息,结构清晰,看上去比较明了
比如:
由上面的xml结构可以看出,xml由英文单词命名的节点,子节点及其对应的元素构成,结构简单,
可以把第一行当作它扎根的“土地”。XML文件是由节点构成的。它的第一个节点为“根节点”。一个XML文件必须有且只能有一个根节点,其他节点都必须是它的子节点
每个子节点又可以有自己的子节点。节点编号由0开始,
今天要看的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源文件
//如果没有到文件尾继续执行
//如果是开始标签
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)+"\n\n");
list.add(sb);
}
} else if (xrp.getEventType() == XmlPullParser.END_TAG) {
} else if (xrp.getEventType() == XmlPullParser.TEXT) {
}
//下一个标签
xrp.next();
}
//3.运行结果:
上面经过简单的几步就取到我们想要的节点属性值,
在安卓的学习和开发过程中,不可避免会遇到过很多麻烦和难题,每次都是网上求救,众多前辈的博客给了我很大帮助和启发, 希望写下自己的笔记,和大家分享,如有纰漏之处,还请各位不吝赐教!
原文链接:https://www.f2er.com/xml/294640.html