博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用DOM解析XML文档
阅读量:4599 次
发布时间:2019-06-09

本文共 2806 字,大约阅读时间需要 9 分钟。

简单介绍一下使用DOM解析XML文档,解析XML文件案例:

-
-
<姓名>
小白
<健康值>
100
<亲密度>
0
<年龄>
1岁
-
<姓名>
黄鼠狼
<健康值>
30
<亲密度>
90
<年龄>
5岁
-
<姓名>
小东
<健康值>
90
<亲密度>
10
<年龄>
3岁

使用DOM解析XML文档

import java.io.IOException;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;import org.xml.sax.SAXException;/** * 使用DOM解析XML文档 * @author Administrator * */public class DomReadXML {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub                //========使用DOM解析XML        //第一步:建立DOM解析工厂对象实例        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();                        try {            //第二步:从DOM解析工厂中获取解析器            DocumentBuilder db = dbf.newDocumentBuilder();                        //第三步:解析XML文件;载入XML文件得到Document即DOM树            Document dom = db.parse("file:///D:/Desktop/chapter14/教学演示案例/示例3:使用内部DTD文件/pet2.xml");                        //得到所有狗狗节点信息            NodeList nl = dom.getElementsByTagName("dog");            System.out.println(nl.getLength());            //循环取出信息            for (int i = 0; i < nl.getLength(); i++) {                                //得到每只狗狗节点                Node dog = nl.item(i);                                //得到狗狗的属性(即ID)                Element el = (Element)dog;                String id = el.getAttribute("id");                System.out.println("ID:"+id);                                //获取狗狗的子节点信息                for(Node dog_child = dog.getFirstChild();dog_child!=null;dog_child = dog_child.getNextSibling()){                                        //为了防止打印空格(即#text);需要判断当前对象为Node节点对象                    if(dog_child.getNodeType() == Node.ELEMENT_NODE){                        String name = dog_child.getNodeName();                        String value = dog_child.getFirstChild().getNodeValue();                        System.out.println(name+":"+value);                    }                }                            }                    } catch (ParserConfigurationException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (SAXException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }            }}

 

转载于:https://www.cnblogs.com/wlx520/p/4493092.html

你可能感兴趣的文章
磁盘管理综合测试
查看>>
Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
查看>>
UMLet
查看>>
从父控件移除控件
查看>>
calc()制作自适应布局
查看>>
Markdown-写作必备
查看>>
关于在Java中 a!=a 值为真的解释(摘抄)
查看>>
C#串口小助手
查看>>
详解定位与定位应用
查看>>
【前端开发】 5分钟创建 Mock Server
查看>>
一个Tomcat配置参数引发的血案
查看>>
java 从键盘录入的三种方法
查看>>
使用jQuery和YQL,以Ajax方式加载外部内容
查看>>
pyspider 示例
查看>>
Ubuntu下Sublime Text 3解决无法输入中文的方法
查看>>
电路板工艺中的NPTH和PTH
查看>>
JNI实现JAVA和C++互相调用
查看>>
JAVA 笔记(一)
查看>>
jdk+Tomcat部署安装
查看>>
js 循环读取 json的值
查看>>