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
-----------------------

你可能感兴趣的:(DOM操作XML——利用Element读取数据)