基于DOM XML学习笔记

关于XML我就不多介绍了。这里只是介绍下小弟学习DOM解析XML的代码笔记。
首先贴出XML的代码
<?xml version="1.0" encoding="UTF-8"?>
<employees>
<employee>
<name>tom</name>
<sex>boy</sex>
<age>24</age>
</employee>
<employee>
<name>sara</name>
<sex>girl</sex>
<age>24</age>
</employee>
</employees>


	public static void main(String[] args) {
//建立解析工厂
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();
String url="D:\\workSpace\\J2SE\\src\\com\\xmlTest\\test.xml";
// 拿到XML
Document doc = db.parse(url);
//去掉空白占位符
doc.normalize();

// NodeList employees = doc.getElementsByTagName("employee");
NodeList employees = doc.getChildNodes();
for(int i= 0;i<employees.getLength();i++){
/**
* 简单XML格式DOM解析
*/
Node employee = employees.item(i);
System.out.println(employee.getNodeName()
+ ":" + employee.getTextContent());

}
}
} catch (DOMException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}


XML第二种
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book id="12" type="chm">
<name>java</name>
<price>80</price>
</book>
<book id="15" type="pdf">
<name>Spring</name>
<price>30</price>
</book>
</books>


解析上面XML的JAVA代码部分
public void testXml2()throws Exception{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
String url="D:\\workSpace\\J2SE\\src\\com\\xmlTest\\test2.xml";
Document doc = db.parse(url);
doc.normalize();
Element element = doc.getDocumentElement();
NodeList books = element.getElementsByTagName("book");
Map map = new HashMap();
for(int i=0;i<books.getLength();i++){
Element bookElement = (Element) books.item(i);
map.put("id", bookElement.getAttribute("id"));
map.put("type", bookElement.getAttribute("type"));
NodeList childNodes = bookElement.getChildNodes();

for(int j=0;j<childNodes.getLength();j++){
Node book = childNodes.item(j);
if(book.getNodeType()==Node.ELEMENT_NODE){
if("name".equals(book.getNodeName()))
map.put("name", book.getFirstChild().getNodeValue());

else if("price".equals(book.getNodeName()))

map.put("price", book.getFirstChild().getNodeValue());


}

}
System.out.println(map);
}


}

以上是今天的学习代码总结,大家可以相互学习参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值