`
Java_大猫
  • 浏览: 170532 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

基于DOM XML学习笔记

    博客分类:
  • J2SE
阅读更多
关于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);
		}
		
		
	}

以上是今天的学习代码总结,大家可以相互学习参考
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics