XmlPullParserFactory例子

这篇博客展示了如何利用Java中的XmlPullParserFactory解析XML数据。通过创建Member和Group类,博客作者详细解释了如何构建数据结构来存储解析后的XML信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;


import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;




public class TestPull {


public static void main(String[] args) throws Exception {
//解析工厂
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
//解析器
XmlPullParser parser = factory.newPullParser();

InputStream inputstream = new FileInputStream("xml/test.xml");
//test.xml放入解析器
parser.setInput(inputstream, "utf-8");

int type = 0;//文档的开始
ArrayList<Group> list =null;
Group group =null;
Member member =null;
while ((type=parser.getEventType())!=XmlPullParser.END_DOCUMENT) {
String tagName = parser.getName();
switch (type) {
case XmlPullParser.START_TAG:

if ("Android08".equals(tagName)) {
list = new ArrayList<Group>();
}else if ("myGroup".equals(tagName)) {
group = new Group();
String no = parser.getAttributeValue(0);
group.setNo(no);
}else if ("member".equals(tagName)) {
member = new Member();
}else if ("name".equals(tagName)) {
String name = parser.nextText();
member.setName(name);
}else if ("Hobby".equals(tagName)) {
String hobby = parser.nextText();
member.setHobby(hobby);
}else if ("location".equals(tagName)) {
String location = parser.nextText();
member.setLocation(location);
}
break;
case XmlPullParser.END_TAG:
if ("myGroup".equals(tagName)) {
group.setMember(member);
list.add(group);
}
break;
}
parser.next();
}
for (Group gs : list) {
System.out.println(gs);
}
}


}



public class Member {
private String name;
private String hobby;
private String location;
public Member() {
super();

}
public Member(String name, String hobby, String location) {
super();
this.name = name;
this.hobby = hobby;
this.location = location;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
@Override
public String toString() {
return "Member [name=" + name + ", hobby=" + hobby + ", location="
+ location + "]";
}


}




public class Group {
private String no;
private Member member;
public Group() {
super();

}
public Group(String no, Member member) {
super();
this.no = no;
this.member = member;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public Member getMember() {
return member;
}
public void setMember(Member member) {
this.member = member;
}
@Override
public String toString() {
return "Group [no=" + no + ", member=" + member + "]";
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值