JavaWeb

Java读取XML文件

2017-03-01  本文已影响19人  shallwego_

Java读取Xml文件 【视频】

有四种方法:DOM、SAX、DOM4J、JDOM

DOM读取:

1、准备阶段:

DocumentBuilderFactory>>>DocumentBulder>>>Document>加载xml文件

准备工作

2、获取并遍历节点

(1)通过document对象的getElementByTagName()方法获取节点集合NodeList【即几本书的集合】;

循环遍历,通过NodeList的item(index)方法获取每个节点Node【每本书】;

通过Node的getAttributes()方法获取节点的属性集合NamedNodeMap【书的属性集合:id】

循环遍历,通过NamedNodeMapd的item(index)方法获取每个属性节点Node【id】

通过Node的getNodeName()和getNodeValue()方法获取属性值【例如:id--1】

获取并遍历book节点集合
获取并遍历book属性集合

2(2)在已知book节点只有一个id属性时,可用以下方法。

Element类

3、获取并遍历子节点

通过Node的getChildNodes()方法获取到子节点集合NodeList【书名/作者/日期等】

循环遍历,NodeList的item(index)方法可分别获取到每一个Node,然后通过getNodeName(),getNodeValue()方法可获取到该子节点的节点名和节点值。

获取并遍历book节点的子节点

此处注意:

常用的节点类型有Element、Attr、Text三种类型。

当使用getLength()方法时,解析器会把Xml文件中的空格以及换行符当做一个Text节点记入length。

如果直接使用getNodeValue()方法,若节点为Element类型(例如:<author>金庸</author>),则返回值为null。因此先通过getFirstChild()方法获取到Text节点(金庸),才能通过getNodeValue()方法获取节点值。

常用节点类型

通过getTextContent()方法可以获取到节点中的Text文字。

【当节点中既有Element节点又有Text节点时:(例如:<author><a>aa</a>金庸</author>)

getTextContent():获取到所有文本信息.(aa金庸)

getFirstChild().getNodeValue:获取到第一个子节点的文本信息.(aa)】


两种方法的区别
上一篇下一篇

猜你喜欢

热点阅读