Dom4j解析和sax解析xml
xml基础知识
1)标签对大小写敏感,2)xml解析方式有两种dom解析和sax解析 3)常用的解析工具有dom的dom4j和sax的sax解析工具 4)文档声明中使用<?xml version="1.0" encoding="utf-8"?> encoding="utf-8"表示的意义是解析该文档时使用utf-8编码格式进行解析,要与文件保存时的编码方式一致。
1 在解析xml文件时,比较常用的是Dom4j包,可以很方便的解析出来dom树结构。dom4j包含有常用结构node,element,attribute,
在操作dom元素之前,需要新建一个SAXReader saxReader = new SAXReader();然后获取document,即整个document树
获取rootElement,使用函数是getRootElement();获取到element后就可以任意遍历元素element、属性attribute、内容text
2 注意xml文件中的空格和换行和html不同,xml解析器会将空格和换行认为是内容。
3 dom解析 和 SAx解析区别
1)一次性加载xml文件,不适合大文件 加载一点解析一点
2) 可以增删改查 只能读取
3) 可以读取任意位置数据 只能从上到下
4) 面向对象document,element 基于事件编程
Xpath技术
List<Node> list = Element.selectNodes("xpath") //获取所有Node
Node node = Element.selectNode("xpath") //获取单个Node
1)根标签:"/",选取根标签
2)所有标签:"//",选取所有满足要求的标签
3)通配符:"*",选取所有标签
4)带有条件的选取:[]
5)选取属性:"@",选取属性值的是"@id='001'"
Dom4j解析和sax解析xml的更多相关文章
- XML 解析---dom解析和sax解析
眼下XML解析的方法主要用两种: 1.dom解析:(Document Object Model.即文档对象模型)是W3C组织推荐的解析XML的一种方式. 使用dom解析XML文档,该解析器会先把XML ...
- XML的概述,.Dom4解析和SAX解析
1.什么是XML XML 指可扩展标记语言(EXtensible Markup Language) html(hyper text markup langauge) XML 是一种标记语言,很类似 H ...
- 经典面试题:一张表区别DOM解析和SAX解析XML
============DOM解析 vs ...
- java解析XML之DOM解析和SAX解析(包含CDATA的问题)
Dom解析功能强大,可增删改查,操作时会将XML文档读到内存,因此适用于小文档: SAX解析是从头到尾逐行逐个元素解析,修改较为不便,但适用于只读的大文档:SAX采用事件驱动的方式解析XML.如同在电 ...
- XML解析(二) SAX解析
XML解析之SAX解析: SAX解析器:SAXParser类同DOM一样也在javax.xml.parsers包下,此类的实例可以从 SAXParserFactory.newSAXParser() 方 ...
- DOM解析和SAX解析的区别
DOM解析和SAX解析的区别 博客分类: XML DOM SAX DOM解析和SAX解析的区别 No 区 别 DOM解析 SAX解析 1 操作 将所有文件读取到内存中形成DOM树,如果文件量过大,则 ...
- java拾遗2----XML解析(二) SAX解析
XML解析之SAX解析: SAX解析器:SAXParser类同DOM一样也在javax.xml.parsers包下,此类的实例可以从 SAXParserFactory.newSAXParser() 方 ...
- 非常简单的XML解析(SAX解析、pull解析)
这里只是把解析的数据当日志打出来了 非常简单的xml解析方式 package com.example.demo.service; import java.io.IOException; import ...
- XML文件解析DOM解析和SAX解析
解析一个XML文档有哪些内容解析有:dom和sax两种dom:把整个XML文档放入内存,适合XML随机访问,占用内存资源大sax:事件驱动型的XML解析方式,顺序读取,不用一次装载整个文件,遇到标签会 ...
随机推荐
- RichTextBox 清空
this.tbContent.Document.Blocks.Clear();
- Convert CString to ANSI string in UNICODE projects
Convert CString to ANSI string in UNICODE projects Quick Answer: use an intermediate CStringA. Norma ...
- 基于JDK动态代理实现的接口链式调用(Fluent Interface)工具
什么是链式接口(Fluent Interface) 根据wikipedia上的定义,Fluent interface是一种通过链式调用方法来完成方法的调用,其操作分为终结与中间操作两种.[1] 下面是 ...
- M2Mqtt is a MQTT client available for all .Net platform
Introduction M2Mqtt is a MQTT client available for all .Net platform (.Net Framework, .Net Compact F ...
- Android Studio 3.0 下载 使用新功能介绍
谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.g ...
- Android动态加入控件约束位置
用LayoutParams: RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.screen);//scree ...
- 如何不使用pthread_cancel而杀死线程
http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...
- wepy - 与原生有什么不同(slot插槽)
wepy官方文档是这样介绍的 简单描述就是: index.wpy:子组件 panel.wpy:父组件 1.slot是内容分发的占位符 2.slot父组件在子组件使用时,名称必须一致 3.slot子组件 ...
- ThinkCMF X2.2.2多处SQL注入漏洞分析
1. 漏洞描述 ThinkCMF是一款基于ThinkPHP+MySQL开发的中文内容管理框架,其中X系列基于ThinkPHP 3.2.3开发,最后更新到2.2.2版本.最近刚好在渗透测试 ...
- Emmet初探2
关于Emmet Emmet插件的前身是Zen coding,可以大幅度提高前端开发效率的一个工具,也有人说类似于jade(高性能的模板引擎,它深受 Haml 影响,它是用 JavaScript 实现的 ...