DOM操作XML——利用Element读取数据

flowers.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<flowers>
  <flower id="1">
     <name>玫瑰</name>
     <price>10</price>
  </flower>
  <flower id="2">
     <name>百合</name>
     <price>20</price>
  </flower>
   <flower id="3">
     <name>兰花</name>
     <price>30</price>
  </flower>
</flowers>

ReadElement.java

 

import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class ReadElement{
  /**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
		DocumentBuilder db;
		try{
			db=dbf.newDocumentBuilder();
			Document doc=db.parse("flowers.xml");
                   //查询所有鲜花
			NodeList list=doc.getElementsByTagName("flower");
			for(int i=0;i<list.getLength();i++){
				Element flower=(Element)list.item(i);
				Node priceNode=flower.getElementsByTagName("price").item(0);
				String strPrice=priceNode.getTextContent();
				double price=Double.parseDouble(strPrice);
				if(price>10){
					String id=flower.getAttribute("id");
					Node nameNode=flower.getElementsByTagName("name").item(0);
					String name=nameNode.getTextContent();
					System.out.println("id:"+id);
					System.out.println("name:"+name);
					System.out.println("price:"+price);
					System.out.println("-----------------------");
				}
			}
		}catch(ParserConfigurationException e){
			e.printStackTrace();
		}catch(SAXException e){
			e.printStackTrace();
		}catch(IOException e){
			e.printStackTrace();
		}
	}
}

 显示效果

id:2
name:百合
price:20.0
-----------------------
id:3
name:兰花
price:30.0
-----------------------

转载于:https://my.oschina.net/u/137892/blog/52586

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值