[学习手记] Java中利用DOM方法解析XML文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[学习手记] Java中利用DOM方法解析XML文件相关的知识,希望对你有一定的参考价值。
需求分析:
在做一个利用API的小东西时需要对返回的XML格式的数据进行解析
详见文章: [开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)
项目地址: https://github.com/hwding/seekDict
准备工作:
- 阅读Documentation
- 查阅相关代码
读入XML文件到程序内:
首先用DocumentBuilderFactory生成一个DocumentBuilder实例
DocumentBuilder docmumentBuilder = DocumentBuilderFactory.newInstance();
这个实例用来从文件中读取, 解析并构造一个(XML)Document
下一步利用docmumentBuilder去解析本地XML文件并把结果赋给一个(XML)Document实例
Document document = docmumentBuilder.parse(file);
注意这个file此处未声明, 实际上应该指向本地的一个存储XML的文件
如果解析成功, 此时document在程序内就是一个合法的(XML)Document
节点(Node\\NodeList)与元素(Element)的查找与读取:
Element rootElement = document.getDocumentElement();
先将整个文档当作一个大元素赋给rootElement
NodeList cotent = rootElement.getChildNodes();
Element类的getChildNodes()方法将获得此元素下的所有一级节点, NodeList中存储着多个Node
所以此时content中就存储了XML文档中所有的一级节点
如果需要继续解析一级节点的子节点, 方法是一样的, 但是将Node类转化成Element类需要进行实例检查, 否则在遍历节点时会出错
1 if (content.item(i) instanceof Element) 2 Element example = (Element) content.item(i);
如果content中第i个子节点是Elememnt的实例, 那么就转换其类型并赋给example, 下面就可以对这个节点作进一步的处理
提取想要的标签节点
Node def = element.getElementsByTagName("def").item(j);
将获得element节点下所有标签为"def"的子节点中的第j个子节点
获得文字节点的内容
childNodes.item(p).getTextContent();
类方法与属性(重要):
以上是关于[学习手记] Java中利用DOM方法解析XML文件的主要内容,如果未能解决你的问题,请参考以下文章