`

Dom 解析XML文件

 
阅读更多

一、引言

       说起来学java好长时间了,却不会XML的解析,感觉好惭愧。由于要用到XML所以学习下怎么解析XML,百度了下发下JAVA下有好多方式去解析,在这就先学习下以DOM模式的解析。

       W3C关于XML的DOM教程:http://www.w3school.com.cn/xmldom/index.asp

二、解析XML

       如何 装载XML

//使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器
DocumentBuilderFactory fac=DocumentBuilderFactory.newInstance();
//使用当前配置的参数创建一个新的 DocumentBuilder 实例
DocumentBuilder builder=fac.newDocumentBuilder();
   //获取document实例 string或者是file
Document doc=builder.parse("test.xml");

 

      (1) 解析XML文档目的我觉的是:1.得到某个节点的属性值

                                                                2.得到这个节点的值

      (2)这样出来了一个问题如何得到你想要的节点:好像只有遍历了,如果有好的方法告诉我。

//根节点获取的方法
Element root=doc.getDocumentElement();
//得到所有同样的节点 不论是否是统一级别的
NodeList list=root.getElementsByTagName("employee");
//遍历得到想要的 属性、文本值
for(int i=0;i<list.getLength();i++){
Element e=(Element)list.item(i);
System.out.println("nodeName:"+e.getNodeName());
System.out.println("attribute:"+e.getAttribute("name"));
System.out.println("attribute:"+e.getAttribute("id"));
System.out.println("attrTxt"+e.getElementsByTagName("id").item(0).getFirstChild().getNodeValue());
}

//======================================
//统一级别的
NodeList list=  root.getChildNodes();
System.out.println(list.getLength());
for(int i=0;i<list.getLength();i++)
{
//注意判断是否符合要求
if(list.item(i) instanceof Element)
{		
Element e=(Element)list.item(i);	
System.out.println("nodeName:"+e.getNodeName());
System.out.println(e.getAttribute("name"));
System.out.println("attribute:"+e.getAttribute("id"));
System.out.println(e.getElementsByTagName("id").item(0).getFirstChild().getNodeValue());
}
}

 

      (3)因为在这样的方式中获取你想要的东西值,被分为了2样:1.属性

                                                                                                            2.节点文本

//属性
Element.getAttribute("");
//文本
Element.getElementsByTagName("id").item(0).getFirstChild().getNodeValue();

  最后:我觉得在取值这块非常不方便、获取特定节点这块也很不方便

三、Dom4j形式

 Dom4j的用法:http://www.java3z.com/cwbwebhome/article/article2/2296.html?id=837

                            http://lavasoft.blog.51cto.com/62575/66953

 xpath解析可能最喜欢这个了,准确定位很方便实用的。
实用的时候引用jar包:jaxen-1.1-beta-6

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics