首页 分享 解析XML和封装XML的基本用法和操作

解析XML和封装XML的基本用法和操作

来源:花匠小妙招 时间:2024-12-17 08:38

最新推荐文章于 2021-12-28 10:00:49 发布

在奔跑的史努比586 于 2018-08-25 11:15:50 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

<?xml version='1.0' encoding='utf-8' standalone='yes'?>

<persons>

<person>

<name sex="男">徐志摩</name>

<address>法国剑桥大学</address>

<phone>苹果手机</phone>

<hoppy>游泳</hoppy>

</person>

<person>

<name sex="女">张幼仪</name>

<address>北京大学</address>

<phone>苹果手机</phone>

<hoppy>跑步</hoppy>

</person>

<person>

<name sex="女">徐家辉</name>

<address>北京八维</address>

<phone>oppoR11</phone>

<hoppy>玩</hoppy>

</person>

</persons>

解析XML方法的小工具

private List<PersonBean> pullAnaly(InputStream in) {

List<PersonBean> list = null;

PersonBean personBean = null;

try {

// 创建pull解析方式

XmlPullParser pullParser = XmlPullParserFactory.newInstance()

.newPullParser();

// 设置xml的流和编码格式

pullParser.setInput(in, "UTF-8");

// 获取当前的状态

int type = pullParser.getEventType();

while (type != XmlPullParser.END_DOCUMENT) {

// 获取当前的标签名称

String TypeName = pullParser.getName();

// 根据当前的状态进行判断

switch (type) {

// 开始标签

case XmlPullParser.START_TAG:

if (TypeName.equals("persons")) {

list = new ArrayList<PersonBean>();

} else if (TypeName.equals("person")) {

personBean = new PersonBean();

} else if (TypeName.equals("name")) {

personBean.name = pullParser.nextText();

//获取属性的内容

personBean.sex = pullParser.getAttributeValue(null,"sex");

} else if (TypeName.equals("address")) {

//获取下一个内容存入javabean中

personBean.address = pullParser.nextText();

} else if (TypeName.equals("hoppy")) {

personBean.hoppy = pullParser.nextText();

} else if (TypeName.equals("phone")) {

personBean.phone = pullParser.nextText();

}

break;

// 结束标签

case XmlPullParser.END_TAG:

if (TypeName.equals("person")) {

list.add(personBean);

}

break;

default:

break;

}

type = pullParser.next();

}

} catch (Exception e) {

e.printStackTrace();

}

return list;

}

封装一个XML的小工具

public boolean saveXml(List<PersonBean> list) {

Log.d("aa", list.size() + "--" + list.get(1).name);

// 创建存储对象

XmlSerializer xs = Xml.newSerializer();

try {

xs.setOutput(this.openFileOutput("person.xml", this.MODE_PRIVATE),

"UTF-8");

// 设置头结点

xs.startDocument("UTF-8", true);

// 设置根节点

xs.startTag(null, "persons");

// 循环添加子元素

for (int i = 0; i < list.size(); i++) {

// 设置子根节点

xs.startTag(null, "person");

// 为子根节点设置属性

xs.attribute(null, "id", i + "");

// 设置姓名

xs.startTag(null, "name");

xs.attribute(null, "sex", list.get(i).sex);

xs.text(list.get(i).name);

xs.endTag(null, "name");

// 设置爱好

xs.startTag(null, "hpbby");

xs.text(list.get(i).hoppy);

xs.endTag(null, "hpbby");

// 设置住址

xs.startTag(null, "address");

xs.text(list.get(i).address);

xs.endTag(null, "address");

// 设置手机

xs.startTag(null, "phone");

xs.text(list.get(i).phone);

xs.endTag(null, "phone");

xs.endTag(null, "person");

}

xs.endDocument();

xs.endTag(null, "persons");

return true;

} catch (Exception e) {

e.printStackTrace();

}

return false;

}

相关知识

XML基本解析
常见C/C++ XML解析器比较
xml 属性value换行显示
[Java拾遗一] XML的书写规范与解析.
将字体添加为 XML 资源
js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中
一种基于J2ME的移动支付系统的设计与实现...
成都五月花劳动职业技能培训学校
花了1个月时间,把Python库全部整理出来了,覆盖所有,建议收藏
JSON格式化 json在线解析工具 在线json格式校验

网址: 解析XML和封装XML的基本用法和操作 https://www.huajiangbk.com/newsview1141736.html

所属分类:花卉
上一篇: 不正确的是:A.char a[1
下一篇: Arbotix关节轨迹控制器的使

推荐分享