DOM解析XML
来源:互联网 发布:电子杂志免费制作软件 编辑:程序博客网 时间:2024/05/19 14:02
首先附上自己的代码:
package com.wch.dom;import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import org.junit.Test;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList;public class DomJiexi {@Testpublic void test(){//创建解析XML的文档对象File xmlFile = new File("E:/Eclipse1/DomXml/src/com/wch/xml/NewFile.xml");//通过单例模式创建DocumentBuilderFactory对象DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();try {//通过DocumentBuilderFactory对象创建DocumentBuilder对象DocumentBuilder builder = builderFactory.newDocumentBuilder();//解析文件Document document = builder.parse(xmlFile);//获得根元素Element element = document.getDocumentElement();System.out.println("根元素:"+element.getNodeName());//获取根元素下的所有子节点NodeList nodeList =element.getChildNodes();//遍历这些节点for (int i = 0; i < nodeList.getLength(); i++) {Node node = nodeList.item(i);if("article".equals(node.getNodeName())){System.out.println("\r\n找到第一篇文章,所属分类:"+node.getAttributes().getNamedItem("category").getNodeValue());NodeList nodeDetail = node.getChildNodes();for (int j = 0; j < nodeDetail.getLength(); j++) {Node detail = nodeDetail.item(j);if("title".equals(detail.getNodeName())){System.out.println("标题:"+detail.getTextContent());}else if("author".equals(detail.getNodeName())){System.out.println("作者:"+detail.getTextContent());}}}}} catch (Exception e) {e.printStackTrace();}}}
输出效果是:
根元素:articles找到第一篇文章,所属分类:xml标题:XML 概述作者:janet找到第一篇文章,所属分类:java标题:Java书籍作者:XXX君
现在对DOM解析XML进行总结:
第一步:创建File对象,加载xml文件
第二步:创建DocumentBuilderFactory对象
第三步:创建DocumentBuilder对象
第四步:用Document解析XML
第五步:通过Document的各种方法进行XML的各项操作了。
- XML DOM---解析xml dom
- 【XML】DOM解析XML
- 解析xml dom 解析
- xml解析 Dom解析
- dom解析xml
- dom解析 xml
- dom解析xml
- 解析xml之--DOM
- Dom解析XML文档
- DOM解析XML文件
- dom解析xml
- dom解析xml
- xml文件解析-DOM
- JAVA解析XML DOM
- DOM解析XML
- JAVA解析XML DOM
- XML DOM解析
- JAVA解析XML DOM
- 【二维数组】统计英文大写字母,小写字母,数字,空格,以及其他字符的个数
- zend 框架中的 主从数据库部署
- C++日记——list的erase用法(erase迭代删除运行时出错)
- [转]Java继承中的成员方法和变量
- sql表死锁查不出数据
- DOM解析XML
- ios项目icon和default图片命名规则
- Install MySql For Redhat Linux
- AlertBox 弹出层(信息提示框)效果---兼容
- vector clock algorithm (forward)
- linux下include目录和lib目录
- Linux下源码编译安装PostgreSQL
- struct passwd 结构体的相关使用函数
- 物资需求计划