css和javascript的一些笔记(六) schema sax dom4j xpath
来源:互联网 发布:淘宝买家要求线下送货 编辑:程序博客网 时间:2024/06/18 16:01
1、schema约束
dtd语法:<!ELEMENT 元素名称 约束>** schema 符合xml的语法** 一个xml中可以有多个schema,多个schema使用名称空间来区分** 比dtd支持更多的数据类型 *** 比如 年龄 只能是整数,schema就可以定义整数类型** 约束能力强大,语法复杂,目前不能替代dtd
2、schema的快速入门
* 创建一个schema文件 后缀名是.xsd ** 根节点<schema>步骤 (1)看xml中有多少个元素 <element> (2)看简单元素和复杂元素!![这里写图片描述](http://img.blog.csdn.net/20160125211754678) ** xmlns表示xml文件是一个约束文件 ** targetNamespace 直接通过地址来引入
<schema xmlns="http://www.w3.org/2001/xmlschema" targetNamespace="http://www.ii.cn" elementFormDefault="qulited">
<element> 如果复杂元素 《complexType> <sequence> (3)简单元素写在复杂元素里面 (4)在被约束里面引入约束文件
<person xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://www.ii.cn" xsi:schemaLocation="http:http://www.ii.cn 1.xsd">
* sequence 表示出现的顺序<all>表示只能出现一次<choice>:元素只能出现其中的一个maxOccurs="unbounded":元素出现的次数没限制<any>:表示任意元素定义属性 * 写在复杂元素里面 写在</complexType>之前 <attribute name= type= use=>
3、sax解析的原理
* dom和sax边读边解析 事件驱动javax.saxparsersaxParser parse(file f,defaulthandler dh) 第一个参数xml路径 第二个参数 事件处理器 当把时间处理器传递进来,相当于在方法里绑定了一个事件 当解析到开始标签时候,自动执行startElement方法 当解析到文本时候,自动执行characters方法 当解析到结束标签时候,自动执行endElement方法
4、使用jaxp的sax方式解析xml
只能查询执行parse需要新建类继承defaulthandler重写里面的三个方法* 获取所有name元素的值 ** 定义一个成员变量flag,如果是name,flag=true 如果flag=true就在characters里面打印内容 结束方法时,flag=false
5、使用dom4j解析xml
*dom4j是一个组织,针对xml解析,提供了解析器dom4j* 不是javase的一部分,想要使用第一步需要导入dom4j.jar* 得到document
SAXReader reader = new SAXReader(); Document document = reader.read(url);
* document的父接口是Node *如果在document找不到 在Node里找* getRootElement();根节点 返回的是Element* element也是一个接口 父接口是Node - getParent() 父节点 - addElement 添加标签
6、使用dom4j查询xml
*查询所有name元素里面的值* 添加 addElement `ouputFormat format = outputformat.crea//用来对回写后的xml格式化`回写 需要
XMLwriter xmlwirter = new XMLWriter(new fileOutputStream(路径),format); xmlwriter.write(document); xmlwriter.close();
* 添加节点需要
Element root = document.getRootElement(); Element p1 = root.element(名称) list<element> list = p1.elements(); documentHelper.createElement("school"); school.setText() list.add(1,school);
然后回写
使用dom4j修改节点
使用dom4j实现删除节点操作
使用dom4j得到属性值 .attributeValue()
12=使用dom4j支持xpath的操作
可以直接获取到某个元素* 第一种形式 /aaa/dd/bbb:表示一层一层的* 第二种形式 //bbb:表示和这个名称相同,表示只要名称是bbb,都得到* 第三种形式 /aa/bb/* 表示所有元素* 第四种形式 bbb[1]表示第一个bbb元素 bbb[last()]* 第五种形式 //bbb[@id]表示只要bbb元素上面有id属性。都可以得到* 第六种形式 //bbb[@id='b1'] 表示元素名称是bbb,在bbb上面有id属性,并且id的属性值是b1
13、使用dom4j xpath具体操作
默认情况 不支持xpath如果想 第一步,引入支持xpath的jar包,使用jaxen.jar 把jar包导入** 在dom4j里面提供了两个方法 *** selectNodes("xpath表达式")多个节点 *** selectSingleNode()单一节点使用xpath实现;查询xml中所有name
//name 使用selectNodes("//name"); List<Node> list = document.selectNodes("//name"); //遍历 for(Node node:list){ string s = node.getText(); }
实现简单的学生管理系统
增删改查代码在网盘
0 0
- css和javascript的一些笔记(六) schema sax dom4j xpath
- XML--DTD--Schema--DOM--SAX--DOM4J--XPATH
- sax,Dom4j的CURD,xpath
- J2EE进阶之schema约束,JAXP的SAX解析,DOM4J的解析,XPATH的支持 七
- 超全面的JavaWeb笔记day06<Schema&SAX&dom4j>
- 05 schema约束 JAXP的SAX DOM4J
- web day6 DOM&XML(JAXP的SAX解析XML,schema入门,dom4j&XPath的增删改查)
- sax解析、dom4j解析、xpath
- XML+DTD+SAX+DOM4j+Schema
- css和javascript的一些笔记(一)
- css和javascript的一些笔记(二) js基础知识
- day05 Schema约束,JAXP的SAX解析,DOM4J
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- Facebook Hacker Cup 2016 Round 2
- Javaweb自定义标签 tld版本
- CSS布局模型
- 湛江一日游
- KVC/KVO原理详解及编程指南
- css和javascript的一些笔记(六) schema sax dom4j xpath
- 分清成员函数,非成员函数和友元函数
- 2016 工作学习计划
- matlab读三维txt数据并绘图
- win下的休眠对硬盘有影响
- 离职无须迁集体户口 新生儿也能落集体户口
- C 函数编程收揽
- Windows C#自动化框架
- LeetCode299. Bulls and Cows