首页>代码>java解析xml的四种方式>/xml/src/demo/MyXMLDOM.java
package demo;


import java.io.File;
import java.io.InputStream;
import java.util.Properties;


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

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
//DOM解析
public class MyXMLDOM {
	public static void main(String[] args) {
		long lasting=System.currentTimeMillis();
		try {
			File f=new File("src/a.xml");
//			if(f.exists()){
//				System.out.println("存在");
//			}else{
//				System.out.println("不存在");
//				return;
//			}
			//获得一个DOM工厂
			DocumentBuilderFactory  factory=DocumentBuilderFactory.newInstance();
			//获得一个dom解析器
			DocumentBuilder builder=factory.newDocumentBuilder();
			//读配置文件
			Document doc=builder.parse(f);
			//开始打印
			//getDocumentElement 获取根节点
			System.out.println("<"+doc.getDocumentElement().getNodeName()+">");
			//判断该根节点下是否有子节点
			if(doc.getDocumentElement().hasChildNodes()){
				//利用for循环,把第一个儿子开始,一次判断下个同兄弟节点是否存在
				for(Node n=doc.getDocumentElement().getFirstChild();n!=null;n=n.getNextSibling()){
					//节点有很多,ELEMENT_NODE是元素节点,数字值是1
					if(n.getNodeType()==Node.ELEMENT_NODE){
						System.out.println("    <"+n.getNodeName()+">");
							if(n.hasChildNodes()){
								for(Node n1=n.getFirstChild();n1!=null;n1=n1.getNextSibling()){
									if(n1.getNodeType()==Node.ELEMENT_NODE){
											System.out.print("        <"+n1.getNodeName()+">");
												//<name>xb</name> 注:xb算name的下一个节点 即文本节点Text_NODE
												System.out.print(n1.getFirstChild().getNodeValue());
												
											System.out.println("        </"+n1.getNodeName()+">");
									}
								}
							}
						System.out.println("   </"+n.getNodeName()+">");
					}
				}
			}
			System.out.println("</"+doc.getDocumentElement().getNodeName()+">");
			System.out.println("运行时间"+(System.currentTimeMillis()-lasting)+"毫秒");
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}
最近下载更多
1358849392  LV21 2022年11月11日
gaotieyou  LV5 2021年12月11日
tansuo阿郎  LV8 2021年2月27日
simple丶余心  LV21 2020年9月16日
0312wangchen  LV26 2020年4月26日
3969138  LV15 2019年9月23日
cc900118  LV17 2018年3月7日
JoyKinG  LV19 2017年11月28日
zeng8750  LV2 2017年10月29日
元芳你怎么看  LV15 2016年12月26日
最近浏览更多
wbbhappy  LV13 1月11日
1358849392  LV21 2022年11月11日
林间听风  LV10 2022年8月17日
我是helloworld  LV23 2022年6月2日
gaotieyou  LV5 2021年12月11日
shiopaaa  LV13 2021年8月23日
329512801  LV28 2021年7月7日
张洪  LV1 2021年7月1日
Hachi6  LV13 2021年5月10日
zhoujunyu  LV14 2021年4月12日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友