JAVA解析xml文件(DOM)
来源:互联网 发布:玲珑加速器 知乎 编辑:程序博客网 时间:2024/06/17 17:37
DOM方法
实现步骤:
1.创建DocumentBuilderFactory的对象
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();2.创建DocumentBuilder的对象
DocumentBuilder builder=builderFactory.newDocumentBuilder();3.通过DocumentBuilder的parse方法加载xml文件,返回一个Document的对象
Document document=builder.parse("books.xml");4.获取所需要解析的节点的集合 例如获取book节点
NodeList list=document.getElementsByTagName("book");5.进行遍历这个节点的集合,进行解析属性以及子节点及其内容
一些常用方法如下:
解析属性
//获取一个book节点Node book=list.item(i); //获取book节点属性的集合 NamedNodeMap map=book.getAttributes(); //获取属性Node node=map.item(j); //获取属性名String name=node.getNodeName();//获取属性值String value=node.getNodeValue();解析子节点及其值
//获取book节点的子节点的集合NodeList list2=book.getChildNodes(); for (int j = 0; j < list2.getLength(); j++) { //判断节点是不是Element属性 因为空格也会算是一个节点if (list2.item(j).getNodeType()==Node.ELEMENT_NODE) {//获取子节点的name与valueSystem.out.print(list2.item(j).getNodeName());//由于一个节点的开始与结尾标签中间默认是一个标签 故通过以下方法获取System.out.println("-----"+list2.item(j).getFirstChild().getNodeValue());}
获取Element节点值的方法还有
list2.item(i).getTextContent()区别如下:
如果标签下还有一个标签
<name><lala>haha</lala>少年阿宾</name>使用
list2.item(j).getFirstChild().getNodeValue()方法时返回值为null 因为子节点为Element类型
用第二个节点则返回haha少年阿宾
代码:
//使用DOM方法解析xmlpublic class Dom {public static void main(String[] args) {//首先创建DocumentBuilderFactory的对象DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();//创建DocumentBuilder的对象,需要try——catchtry {DocumentBuilder builder=builderFactory.newDocumentBuilder(); //通过DocumentBuilder的parse方法加载xml文件,返回一个Document的对象Document document=builder.parse("books.xml");//获取所有book节点的集合NodeList list=document.getElementsByTagName("book"); System.out.println("共有"+list.getLength()+"本书"); //遍历每一本书 for(int i=0;i<list.getLength();i++) { //获取一个book节点 Node book=list.item(i); //获取book节点属性的集合 NamedNodeMap map=book.getAttributes(); System.out.println("第"+(i+1)+"本书共有"+map.getLength()+"个属性"); //遍历每个属性 for (int j = 0; j < map.getLength(); j++) { //获取属性 Node node=map.item(j);//获取属性名 String name=node.getNodeName(); System.out.print("属性名为"+name); //获取属性值 String value=node.getNodeValue(); System.out.println("-----属性值为"+value);} //获取book节点的子节点的集合 NodeList list2=book.getChildNodes(); for (int j = 0; j < list2.getLength(); j++) { //判断节点是不是Element属性 因为空格也会算是一个节点if (list2.item(j).getNodeType()==Node.ELEMENT_NODE) {//获取子节点的name与valueSystem.out.print(list2.item(j).getNodeName());//由于一个节点的开始与结尾标签中间默认是一个标签 故通过以下方法获取System.out.println("-----"+list2.item(j).getFirstChild().getNodeValue());}} } } catch (SAXException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
xml:
<?xml version="1.0" encoding="UTF-8"?><bookstore> <book id="1"> <name>少年阿宾</name> <year>2002</year> <price>0.01元</price> </book> <book id="2"> <name>少妇白洁</name> <year>1997</year> <price>99元</price> </book></bookstore>
阅读全文
1 0
- JAVA解析xml文件(DOM)
- java解析XML文件(DOM方式)
- Java--Dom解析XML文件
- java DOM解析XML文件
- Java DOM解析XML文件
- Java 解析 XML 文件之 DOM 解析
- JAVA解析XML文件之DOM解析
- xml解析(dom java)
- java 解析XML文件(DOM & SAX)(一)
- JAVA解析XML文件(一)---DOM方式
- java 运用dom解析xml文件之一.
- java用dom解析xml文件心得
- 利用java Dom解析XML文件
- 利用java的Dom解析XML文件
- JAVA语言利用DOM解析XML文件
- Java使用DOM解析XML文件
- 运用java读取xml文件---DOM 解析
- java使用DOM解析XML文件
- Java抑制中序遍历和先序遍历 求二叉树
- CSS3自定义滚动条样式 -webkit-scrollbar
- java Pattern和Matcher详解
- SQL表连接查询(inner join、full join、left join、right join)
- codility FrogRiverOne
- JAVA解析xml文件(DOM)
- [ArchLinux] 蓝牙鼠标
- elasticsearch实现热门词汇展示
- 一个动画弹出框的 DEMO
- redis概念原理
- WordPress添加Meta Box的方法步骤
- ng2目录说明
- 【Android】由简至繁打造一种可记录字数的万金油EditText
- 201509-4 高速公路 ccf