用java解析xml

解析xml.java文件如下:
<pre name="code" class="java">import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class 解析XML {
	
	public static void main(String[] args) {
		try {
			new 解析XML().jiexi(new File("H:\\employee.xml"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public void jiexi(File file) throws FileNotFoundException,IOException{
		//将对象读入流中
		InputStream is = new FileInputStream(file);
		BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
		String line = null;
        StringBuffer sb = new StringBuffer();
        //读取xml数据
        while((line = br.readLine())!=null){  
            sb.append(line+"\n");  
        }  
        System.out.println("xml:"+sb.toString());
        //开始解析
        if(sb.length() > 0) {
        	//根节点
        	Element root= null;
        	try {
				root = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(sb.toString().getBytes("UTF-8"))).getDocumentElement();
			} catch (SAXException e) {
				e.printStackTrace();
			} catch (ParserConfigurationException e) {
				e.printStackTrace();
			}
        	//拿出根节点的所有子节点
        	NodeList nodes = root.getChildNodes();
        	int count = nodes.getLength();
        	for (int i = 0; i < count; i++) {
        		String nodeName = nodes.item(i).getNodeName();
        		//如果是sex节点
        		if ("sex".equals(nodeName)) {
					System.out.println("sex:"+nodes.item(i).getFirstChild().getNodeValue());
				}
        		//如果是name节点
        		if ("name".equals(nodeName)) {
        			//拿出name的子节点
                	NodeList name_nodes = nodes.item(i).getChildNodes();
                	int name_count = name_nodes.getLength();
                	//循环出name节点的每一个子节点
                	for (int j = 0; j < name_count; j++) {
                		//如果是name里的last_name
                		if("last_name".equals(name_nodes.item(j).getNodeName())) {
                			System.out.println("last_name:"+name_nodes.item(j).getFirstChild().getNodeValue());
                		}
					}
				}
			}
        }
	}
}



employee.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<employee>
	<name>
		<first_name>小林</first_name>
		<last_name>陈</last_name>
	</name>
	<sex>男</sex>
	<birthday>1982-1-1</birthday>
	<department>行政部</department>
	<mobile>13888888888</mobile>
</employee>

执行结果如下:


阅读更多
文章标签: xml java解析xml
上一篇使用DOM模型实现图片在div之间切换
下一篇JAVA 进行https传输中文乱码解决
想对作者说点什么? 我来说一句

java读取xml里面带两个例子

2009年05月03日 307KB 下载

JAVA 解析xml

2009年05月18日 11.93MB 下载

java解析xml的方法

2010年12月18日 40KB 下载

用dom4解析和生成XML

2014年10月22日 3KB 下载

解析xml DOM

2007年10月22日 45KB 下载

JAVA解析XML

2011年11月15日 359KB 下载

java解析xml实例

2010年02月23日 257KB 下载

没有更多推荐了,返回首页

关闭
关闭