XML基础(二)

来源:互联网 发布:bioedit软件下载 编辑:程序博客网 时间:2024/05/16 04:03

Dom4j修改xml文档

写出内容到xml文档

XMLWriter writer = new XMLWriter(OutputStream, OutputForamt)wirter.write(Document);

修改xml文档

增加:

DocumentHelper.createDocument() 新建文档
addElement(“名称”) 增加标签
addAttribute(“名称”,“值”) 增加属性

修改:

Attribute.setValue(“值”) 修改属性值
Element.addAtribute(“同名的属性名”,”值”) 修改同名的属性值,其实就是覆盖,效果同上面
Element.setText(“内容”) 修改文本内容

删除:

Element.detach(); 删除标签
Attribute.detach(); 删除属性

xPath技术

引入

问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!

xPath作用

用于快速获取所需的节点对象。

在dom4j中如何使用xPath技术

1)导入xPath支持jar包 。 jaxen-1.1-beta-6.jar
2)使用xpath方法

List<Node>  selectNodes("xpath表达式");   查询多个节点对象Node       selectSingleNode("xpath表达式");  查询一个节点对象

xPath语法

符号作用描述/ 绝对路径表示从xml的根位置开始或子元素(一个层次结构)//相对路径表示不分任何层次结构的选择元素。* 通配符表示匹配所有元素[]条件表示选择什么条件下的元素@属性表示选择属性节点and关系表示条件的与关系(等价于&&)text()文本 表示选择文本内容

SAX解析

SAX解析原理: 加载一点,读取一点,处理一点。对内存要求比较低。

SAX解析工具

SAX解析工具- Sun公司提供的。内置在jdk中。org.xml.sax.*

核心的API:
SAXParser类: 用于读取和解析xml文件对象
parse(File f, DefaultHandler dh)方法: 解析xml文件
参数一: File:表示 读取的xml文件。
参数二: DefaultHandler: SAX事件处理程序。使用DefaultHandler的子类(自定义解析方式)

1.创建SAXParser对象  SAXParser parser=SAXParserFactory.newInstance().newSAXParser();2.调用parse方法parser.parse(new File("./src/contact.xml"), new MyDefaultHandler());

DefaultHandler类的API:

void startDocument()  :  在读到文档开始时调用void endDocument()  :在读到文档结束时调用void startElement(String uri, String localName, String qName, Attributes attributes)  :读到开始标签时调用        void endElement(String uri, String localName, String qName)   :读到结束标签时调用void characters(char[] ch, int start, int length)  : 读到文本内容时调用
DOM解析SAX解析原理: 一次性加载xml文档,不适合大容量的文件读取原理: 加载一点,读取一点,处理一点。适合大容量文件的读取DOM解析可以任意进行增删改查SAX解析只能读取DOM解析任意读取任何位置的数据,甚至往回读SAX解析只能从上往下,按顺序读取,不能往回读DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。SAX解析基于事件的编程方法。java开发编码相对复杂。
0 0
原创粉丝点击