xml解析之Dom

最近在研究xml解析方式,觉得几种方法都还可以!今天把他记下来与大家分享一下!代码是自己写的!过程中有错误的话!还望指正!

public static void main(String[] arrs){

InputStream inputStream = this.getClass.getClassLoad.getResourceAsStream("context.xml"); //得到inputStream

List<Person> perList = new ArrayList<Person>();
Person person = null;

 

//得到文档构建器工厂,用来产生文档构建器
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

 

//通过工厂得到构建器

DocumentBuilder dBuilder = dbf.newDocumentBuilder();

 

//把inputStream 通过构建器进行解析,得到document对象

Document document =dBuilder.parse(inputStream);

 

Element element =document.getDocumentElement(); //得到根节点

 


NodeList childNodeList =element.getElementsByTagName("person"); //得到所有的person 节点对象


for (int i = 0; i < childNodeList.getLength(); i++) {
person = new Person();

//得到单个person 节点对象
Element persoNode =(Element)childNodeList.item(i);

//获取节点属性
person.setId(Integer.valueOf(persoNode.getAttribute("id")));

//得到所有节点下面的所有子节点
for (int j = 0; j < persoNode.getChildNodes().getLength(); j++) {

//得到子节点 并设置值
Node ccElement = persoNode.getChildNodes().item(j);

if (ccElement.getNodeName().equals("name")) {

//得到子节点中的文本
person.setName(ccElement.getFirstChild().getNodeValue());
}
if (ccElement.getNodeName().equals("age")) {

//同上
person.setAge(Integer.valueOf(ccElement.getFirstChild().getNodeValue()));
}
}
perList.add(person);
}

 

for(Person person:perList){

System.out.println(person.toString());

}

}

 

 

/*******************context.xml************************/

<?xml version='1.0' encoding='utf-8'?>
<persons>
<person id='20'>
<name>xx</name>
<age>33</age>
</person>
<person id='30'>
<name>dd</name>
<age>33</age>
</person>
<person id='40'>
<name>aa</name>
<age>33</age>
</person>
</persons>

 

简单把 !!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值