- 浏览: 49749 次
文章分类
最新评论
Java解析XML有多种方式,因此需要分为几个不同的系列来讲。具体安排如下:
1. DOM最基本解析XML;
2. SAX基于事件解析XML;http://gaofulai1988.iteye.com/blog/2262677
3. JDOM不错的解析XML;http://gaofulai1988.iteye.com/blog/2262680
4. DOM4J好用的解析XML;http://gaofulai1988.iteye.com/blog/2262683
5. XPATH解析XML;http://gaofulai1988.iteye.com/admin/blogs/2262787
6. XML与Bean之间的转换。http://gaofulai1988.iteye.com/admin/blogs/2262787
这一个是讲DOM解析XML,DOM的基本思想是将XML文档解析成一个树型,然后依据父子节点、弟兄节点来遍历这棵树。所以它的最大特点是在解析前,先将整个文档载入,这也是它最大的不足之处,如果这个XML文件很大,怎么办呢?
在使用DOM之前,有两种概念提前说一下,Node(节点)和Element(元素)之间的区别,有一个结论是:Element一定是Node,Node不一定是Element。如何来理解?
name既是一个节点也是一个元素,而test只是一个节点,而不是一个元素。
好了,看一个例子吧。先准备好xml文件。
DOM解析代码如下:
1. DOM最基本解析XML;
2. SAX基于事件解析XML;http://gaofulai1988.iteye.com/blog/2262677
3. JDOM不错的解析XML;http://gaofulai1988.iteye.com/blog/2262680
4. DOM4J好用的解析XML;http://gaofulai1988.iteye.com/blog/2262683
5. XPATH解析XML;http://gaofulai1988.iteye.com/admin/blogs/2262787
6. XML与Bean之间的转换。http://gaofulai1988.iteye.com/admin/blogs/2262787
这一个是讲DOM解析XML,DOM的基本思想是将XML文档解析成一个树型,然后依据父子节点、弟兄节点来遍历这棵树。所以它的最大特点是在解析前,先将整个文档载入,这也是它最大的不足之处,如果这个XML文件很大,怎么办呢?
在使用DOM之前,有两种概念提前说一下,Node(节点)和Element(元素)之间的区别,有一个结论是:Element一定是Node,Node不一定是Element。如何来理解?
<name>test</name>
name既是一个节点也是一个元素,而test只是一个节点,而不是一个元素。
好了,看一个例子吧。先准备好xml文件。
<?xml version="1.0" encoding="UTF-8"?> <Students> <student> <NO id="123">123456</NO> <NAME>abc</NAME> </student> <student> <NO id="234">456789</NO> <NAME>def</NAME> </student> </Students>
DOM解析代码如下:
public static void main(String args[]) throws ParserConfigurationException, SAXException, IOException { // xml文件的路径 File f = new File("D:" + File.separator + "test.xml"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); // 解析成一个Document对象 Document doc = builder.parse(f); // 根据标签名获取所有的节点 NodeList nl = doc.getElementsByTagName("student"); for (int i = 0; i < nl.getLength(); i++) { // 输出标签的值 System.out.print("No:" + doc.getElementsByTagName("NO").item(i).getFirstChild() .getNodeValue()); System.out.print("\taddress:" + doc.getElementsByTagName("NAME").item(i).getFirstChild() .getNodeValue()); // Element一定是Node, Node不一定是Element Element e=(Element)doc.getElementsByTagName("NO").item(i); // 输出属性值 System.out.println("\tid="+e.getAttribute("id")); } }
发表评论
-
Java IO 读文件的各种方法总结
2016-01-01 15:00 662IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲, ... -
动态代理的应用
2015-12-22 17:30 689代理模式作为开发人员 ... -
Java Restful
2015-12-19 14:01 393对于两个系统之间交互信息,有两种常见的方式:webservic ... -
request.getInputStream() 只能读一次的解决方法
2015-12-17 12:17 2290我们知道request.getInputStream()只能读 ... -
java Hessian 版本冲突问题解决方法
2015-12-11 19:44 818今天在实际的项目发现了一个问题就是hessian的版本不兼容的 ... -
ThreadPoolExecutor参数讲解
2015-12-10 08:14 7751. 线程池可以节省创建多个线程带来的开销问题。 2. 线程 ... -
Java RSA 加密 解密 签名 验签
2015-12-09 10:01 58641. 加密的作用 1)明文变密文(你不知道密钥是很难解密的) ... -
Java Xstream xml 与bean之间的转换
2015-12-09 08:31 691xml文件如下: <mvc> & ... -
XPATH 解析XML
2015-12-09 08:28 3961. 表达式描述 nodename 选取此节点的所有子节 ... -
Java Dom4j 解析XML
2015-12-09 08:23 326Dom4j和JDom是很相似的,用起来十分方便。 XML文件 ... -
Java JDom 解析xml
2015-12-09 08:22 359JDOM在解析XML在代码量之上比之前的方法(DOM和SAX要 ... -
Java SAX 解析xml
2015-12-08 18:13 360在上一篇中http://gaofulai1988.iteye. ... -
Java 背包算法计算从数组中找若干个数使其最接近某个数
2015-12-08 17:38 1931背包的算法的动态方式如下: f(i,w) = max{ f(i ... -
C3P0 连接分析
2015-12-01 19:05 849最近在看C3P0的原理,还是将C3P0的源码导入到Ecplis ... -
微信开发的原理
2015-11-30 10:10 1275微信在现在的生活中,扮演着举足轻重的角色,现在怎么东西都在微信 ... -
JAVA Timestamp 与Data的转化以及BigDecimal 保留两位小数
2015-11-27 14:47 15941. BigDecimal 保留两位小数 今天在项目中遇到这 ... -
java try catch finally return 继续
2015-11-27 13:45 360之前在博客中有一篇文章讨论过异常中return值的情况,有兴趣 ... -
Java JDBC executeBatch 批量操作
2015-11-27 08:05 1545对JDBC 的 CRUD操作,我相信对于每个开发人员来讲,是十 ... -
Java WeakHashMap 分析
2015-11-26 08:17 576昨天在我们的系统中看 ... -
加密与解密
2015-11-18 18:12 438我本身不是学密码出身的,但在工作中经常要使用加密与解密的东东, ...
相关推荐
java在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava在线解析xmljava...
XML交互时方便进行XML格式转换,包含XML格式数据转换成list对象方法,参数拼接成XML方法
java实现xml解析word文档代码实现,通过解析word书签实现java动态写入word文档。方便使用。
java XML解析方式实现自动生成word文档,文档中主要描述word模板的使用方法,文件中带有案例代码,可以方便理解
非常好用的java 操作XML文件的架包
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件java解析XML文件
XML解析工具类
JAVA XML解析demo可直接使用。导入到eclipse直接启动可以使用
用于xml解析,很好用的一个java类库
* 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到某节点下某个属性的值 * @param element 要获取属性的...
企业级应用 java 解析多级xml 多么复杂的都可以, 一个类,一个jar 包,非常实用,希望大家顶起..
java心电图xml解析源码。
java Stax 解析xml
java在线解析xml
Java 解析XML性能分析Demo。包含了DOM解析,SAX解析, JDOM解析,DOM4J解析,JAXB解析例子。
java通用解析XML工具类
java解析xml字符串,添加属性,更新属性等
Java解析xml所需jar包
java解析xml的四种方法的比较,还有四种方法所用到的jar包 附带程序例子 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML