Dom解析XML文件
程序员文章站
2022-03-03 16:21:06
...
DOM解析xml文件的原理是把xml文件的文档树对象全部加载到内存中,然后解析,这种解析方式的缺点在于在手机、pad等CPU运算速度不快,内存有限的设备上会影响软件效率和系统性能。
使用DOM技术解析XML文件案例:
<?xml version="1.0" encoding="UTF-8"?> <persons> <person id="1"> <name>maomao</name> <age>26</age> </person> <person id="2"> <name>hy</name> <age>27</age> </person> </persons>
解析代码:
public static List<Person> domParse(InputStream inStream) throws Exception {
List<Person> persons = new ArrayList<Person>();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(inStream);
// 获得根节点
Element root = document.getDocumentElement();
NodeList personElements = root.getElementsByTagName("person");
for(int i=0; i<personElements.getLength(); i++) {
Person person = new Person();
Element personElement = (Element) personElements.item(i);
person.setId(Integer.parseInt(personElement.getAttribute("id")));
// 获得person元素节点下所有的节点,其中包含文本节点和元素节点
NodeList personChilds = personElement.getChildNodes();
for(int j=0; j<personChilds.getLength(); j++) {
// 判断节点是否为元素节点
if(personChilds.item(j).getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element)personChilds.item(j);
if(element.getNodeName().equals("name")) {
// 取得元素节点第一个节点的值
person.setName(element.getFirstChild().getNodeValue());
} else if(element.getNodeName().equals("age")) {
person.setAge(new Short(element.getFirstChild().getNodeValue()));
}
}
}
persons.add(person);
}
return persons;
}
上一篇: 利用juypter搭建远程可访问的python交互页面
下一篇: 【XML解析】Dom解析XML
推荐阅读
-
Android studio怎么创建资源的相关文件编辑xml?
-
解析Android资源文件及他们的读取方法详解
-
基于android中读取assets目录下a.txt文件并进行解析的深入分析
-
浅谈Python大神都是这样处理XML文件的
-
python基于xml parse实现解析cdatasection数据
-
python目录操作之python遍历文件夹后将结果存储为xml
-
python解析xml模块封装代码
-
python 解析XML python模块xml.dom解析xml实例代码
-
将Xml文件递归加载到TreeView中
-
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)