采用DocumentBuilderFactory来进行XML文件的解析

package xml;

import java.io.File;
import java.io.FileInputStream;
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.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DocumentBuilderTest {

	
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
		
		FileInputStream in = new FileInputStream(new File("d:/weather.xml"));
		
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
		dbf.setNamespaceAware(true);
		DocumentBuilder db = dbf.newDocumentBuilder();
		//该处返回的Document是JAVA库中内带的 org.w3c.dom.Document
		Document doc = db.parse(in);
		
		NodeList nodeList = doc.getElementsByTagName("current_conditions");
		if(nodeList != null && nodeList.getLength()>0) {
			for (int count = 0; count < nodeList.getLength(); count++) {
				Node n = nodeList.item(count);
				NodeList sonList = n.getChildNodes();
				if(sonList!=null && sonList.getLength()>0){
					System.out.println("========================");
					for (int i = 0; i < sonList.getLength(); i++) {
						System.out.println("########################");
						Node son = sonList.item(i);
						if("#text".equals(son.getNodeName())) {
							
						} else {
							System.out.println("son.getNodeName() is " + son.getNodeName());
							System.out.println("son.getNodeValue() is " + son.getNodeValue());
							System.out.println("son.getTextContent() is " + son.getTextContent());
							NamedNodeMap map = son.getAttributes();
							if(map != null && map.getLength()>0) {
								for(int j=0;j<map.getLength();j++) {
									Node attrs = map.item(j);
									System.out.println("attrs.getNodeName() is " + attrs.getNodeName());
									System.out.println("attrs.getNodeValue() is " + attrs.getNodeValue());
								}
							}
						}
					}
					
				}
			}
		}
		
		
		
	}
	
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值