DOM4j解析xml文件以及Schema约束
来源:互联网 发布:手机版会员积分软件 编辑:程序博客网 时间:2024/05/16 16:57
一、单元测试
* 搭建环境: 在工程中引入junit包,此包在MyEclipse再带的有,无需下载可以直接导入
* 写测试方法的三个要求
* 1.必须加注解@Test,表明这个方法是测试类
* 2.方法必须是共有的,返回值必须为空
* 3.不能含有参数
@Test : 代表测试方法,使用的注解技术
参数timeout: 指定执行方法所需最多时间(毫秒)
expected: 指定方法会出现的异常类型(用元类表示,元类就是Class类)
@Before : 执行每个测试方法之前都要执行的方法
@After : 执行每个测试方法之后都要执行的方法
@Before 是在每个测试方式执行执行先执行的方法
@BeforeClass 是在类加载器加载类到内存中之后立刻去执行的方法.
二、断点调试
断点: 让程序执行到断点时停下来。
三、Dom4j解析(掌握)
*DOM4j加载XML文档://DOM4j加载XML:SAXReader类的read方法,返回Document文档节点
SAXReader reader = new SAXReader();
Document document = reader.read("src/book.xml");
*DOM4j将内存中的DOM树写入硬盘文件:通过XMLWriter类的writ方法
//XMLWriter(OutputStream os,OutputFormat format);os参数是指出写入到哪个文件,format是指明写入的格式:有两种格式pretty漂亮的格式(常用),complex紧凑的格式
XMLWriter writer = new XMLWriter(new FileOutputStream("src/book.xml"),OutputFormat.createPrettyPrint());
writer.write(document);
* document的方法:
List<Element> elements() : 拿到节点的所有子节点,返回List<Element>
List<Element> elements(String) : 拿到指定名字的所有的子节点(不包括孙子节点)
Element element(String) : 拿到指定名字的子节点
* Element节点的方法:
setText() : 设置标签节点的内容
String getTest() : 获得标签节点的内容
Element addAttibute(String name ,String value ) : 添加标签的属性
boolean removeAttribute(String name) : 删除某个属性
* XPath表达式: 主要作用是获取某个节点的路径 。
涉及到的主要方法:
List list = document.selectNodes( "//foo/bar" );//selectNodes方法获取符合XPath表达式的所有节点,返回一个List集合
Node node = document.selectSingleNode( "//foo/bar/author" );//selectSingleNode方法获取符合XPath表达式的单个节点,返回Node
String name = node.valueOf( "@name" );//获取node节点的那么属性的值属性值 *****
XPath表达式基本规则:
路径表达式:
/ 从根节点选取,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
// 相对路径,如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系)
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性,@id 就表示选取id属性
* 星号表示选择所有由星号之前的路径所定位的元素
[1]方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.
eg:/AAA/BBB[1]
选择AAA的第一个BBB子元素
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
@id 选择id属性
eg://@id选择所有的id属性
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
eg://BBB[@id] 选择有id属性的BBB元素节点
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
四、Schema(掌握如何引入一个schema文件)
* 名称空间 : 指的是一个环境,所用的标签来自于哪个环境定义的。
* 掌握引用schema文件:
xml中引入schema约束的步骤:
1、查看schema文档,找到XML中需要的根元素,在xml中写出来
在xsd类型的schema文档中,第一个出现element关键字的标签的name属性就是XML中的根元素
eg:xsd文档中第一个element出现为<xs:element name='书架' > ,那么xml文件中的根元素应为书架
2、根元素来自哪个名称空间。使用xmlns指令来声明
名称空间xmlns是在schema中定义的,就是targetNamespace的值
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book">
</itcast:书架>
3、设置schemaLocation属性,指定使用的是哪个xsd文件即引入的名称空间根哪个xsd文件对应?
使用schemaLocation来指定:两个取值:第一个为名称空间 第二个为xsd文件的路径
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
schemaLocation="http://www.itcast.com/book book.xsd">
</itcast:书架>
4、指定schemaLocation属性的来源。它来自一个标准的名称空间,w3c制定的.
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" //这个标准的空间是固定的,每一个xml文件中都相同
xsi:schemaLocation="http://www.itcast.com/book book.xsd">
</itcast:书架>
5、只要以上4部搞好了,对于子标签myeclipse就有提示
了
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
四、Schema(掌握如何引入一个schema文件)
* 名称空间 : 指的是一个环境,所用的标签来自于哪个环境定义的。
* 掌握引用schema文件:
xml中引入schema约束的步骤:
1、查看schema文档,找到XML中需要的根元素,在xml中写出来
在xsd类型的schema文档中,第一个出现element关键字的标签的name属性就是XML中的根元素
eg:xsd文档中第一个element出现为<xs:element name='书架' > ,那么xml文件中的根元素应为书架
2、根元素来自哪个名称空间。使用xmlns指令来声明
名称空间xmlns是在schema中定义的,就是targetNamespace的值
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book">
</itcast:书架>
3、设置schemaLocation属性,指定使用的是哪个xsd文件即引入的名称空间根哪个xsd文件对应?
使用schemaLocation来指定:两个取值:第一个为名称空间 第二个为xsd文件的路径
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
schemaLocation="http://www.itcast.com/book book.xsd">
</itcast:书架>
4、指定schemaLocation属性的来源。它来自一个标准的名称空间,w3c制定的.
<?xml version="1.0" encoding="UTF-8"?>
<itcast:书架 xmlns:itcast="http://www.itcast.com/book"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" //这个标准的空间是固定的,每一个xml文件中都相同
xsi:schemaLocation="http://www.itcast.com/book book.xsd">
</itcast:书架>
5、只要以上4部搞好了,对于子标签myeclipse就有提示
了
0 0
- DOM4j解析xml文件以及Schema约束
- 约束:HTML---->XML---->XML DTD---->XML Schema 解析:DOM---->+SAX----->Dom4J
- xml文件解析-DOM4J
- dom4j解析Xml文件
- DOM4J 解析XML文件
- dom4j解析xml文件
- dom4j解析XML文件
- dom4j解析xml文件
- dom4j 解析xml文件
- dom4j解析xml文件
- dom4j解析XML文件
- Dom4J解析XML文件
- dom4j解析xml文件
- Dom4j解析xml文件
- Dom4j 解析xml文件
- dom4j解析xml文件
- dom4j解析xml文件
- dom4j解析xml文件
- 《谋圣鬼谷子》杀青 郭宝昌力挺段奕宏戚薇
- String Matching(poj1580)
- poj3422 Kaka's Matrix Travels 最大费用最大流
- XML简介以及XML的解析
- 单线程内存池
- DOM4j解析xml文件以及Schema约束
- 《谋圣鬼谷子》杀青 徐麒雯不舍“姮娥”
- hdu2686 Matrix 最大费用最大流
- 《谋圣鬼谷子》曝定妆 倪大红霸气段奕宏扮"嫩"
- 法国华人提供被对方改变干活
- 《谋圣鬼谷子》探班 戚薇版公主坦言自己像母狼
- 合同纠纷共和国豆腐干豆腐干
- 提示microsoft incremental linker已停止工作解决方法
- securecrt ssh connection closed