XML文件的解析

来源:互联网 发布:无限魔力鸟软件下载 编辑:程序博客网 时间:2024/06/10 05:05

XML文件的四种解析方式:DOM  SAX DOM4J   JDOM

一、解析XML文件(DOM)
1、java读取xml文件中的内容过程叫做解析xml文件
2、解析目的:获取节点名、节点值、属性名、属性值
3、四种解析方式:DOM、SAX、DOM4J、JDOM,前面两个为java官方提供,后面两个需要导入jar包
二、准备工作
1、创建一个DocumentBuilderFactory对象,通过.newInstance()获得
2、创建一个DocumentBuilder对象,通过DocumentBuilderFactory对象的newDocumentBuilder()获得
3、通过DocumentBuilder对象的parse(uri)进行解析,接受一个Document org.w3c.dom对象,将xml成功加载到java下:Document document = db.parse("xxx.xml");


使用Dom解析xml文件的属性节点。
在不知道节点属性的个数和属性名时:
1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合
2、通过NodeList.getLength()获得集合长度,遍历集合
3、Node node = NodeList.item(index)获得里面的节点
4、通过NamedNodeMap attrs = node.getAttributes()获取所有属性集合
5、通过attrs.getLength()遍历集合,Node attr = atrrs.item(index)
6、attr.getNodeName()获得属性名,attr.getNodeValue()获取属性值
前提已经知道book节点有且只有1个id属性,将book节点进行强制类型转换,转换成element类型。
1、通过document.getElementByTagName("标签名")获得所有标签名的节点,得到一个NodeList集合
2、通过NodeList.getLength()获得集合长度,遍历集合
3、element book=(element)bookList.item(i);//强制转换为element类型
4、string attrValue = book.getAttribute("id");



通过book元素的getChildNodes()得到所有子节点的集合,需要注意的是,在DOM的读取中,会将空格和回车看成是text节点类型,因此需要注意区分开。通过item(index)遍历所有子节点,通过item(index)的getNodeName()方法还来获取子节点的名字,而获取它的属性值时,要注意直接使用getNodeValue()得到的是标签的值(一般是空)因此可以使用两种方法:
1.使用item(index).getFirstNode().getNodeValue()来返回值
2.使用item(index).getTextContent()来返回属性值
上面两种方法的区别在于在一个标签中是否包含的其他的子标签,如果有的话,那么第1个方法就仍得到null,第二个方法会返会将自标签的内容一起获得。

0 0
原创粉丝点击