作者:捕鱼达人2602881157 | 来源:互联网 | 2017-05-14 02:24
1、XML:extensiblemarkuplanguage可扩展标记语言version1.0可扩展:所有的标签都是自定义的功能:数据存储配置文件数据传输html与xml区别HTML语法松散,xml语法严格html做页面展示,xml做数据存储Html所有标签都是预定义的,xml所有标签都是自定义的2、xml语法:文档声明必
1、XML : extensible markup language 可扩展标记语言 version="1.0"
可扩展:所有的标签都是自定义的
功能:数据存储
html 与 xml 区别
2、xml语法:
文档声明
元素 xml文档中的标签
元素名称区分大小写
数字不能开头
文档中必须有且只能有一个根元素
元素需要正确闭合
元素需要正确嵌套
元素名称要遵守
文本
转义字符 >;
CDATA 里边的数据会原样显示
属性
注释
处理指令:现在基本不用
3、XML约束
约束就是xml的书写规则
约束的分类:
导入xsd约束文档
编写根标签
引入实例名称空间 xmlns:xsi="www.w3.org/2001/XMLSchema-instance"
引入名称空间 xsi:schemaLocation="www.itcast.cn/xml student.xsd"
引入默认的名称空间
student.xsd
student.xml
asfd
12
male
asfd
12
male
内部dtd 在xml内部定义dtd
外部dtd 在外部文件中定义dtd
Student.dtd
student.xml
本地dtd文件
网络dtd文件
唯一的,必须的
zs
abc
yao
dtd 约束不严谨
schema
4、XML解析
解析XML可以做:
如果xml作为配置文件:读取
如果xml作为传输文件:写、读
XML解析思想:
优点:不占内存,速度快
缺点:只能读取,不能回写
优点:因为在内存中会形成dom树,可以对dom树进行增删改查
缺点:dom树非常占内存,解析速度慢
Document Element Text Attribute Comment
DOM:将文档加载到内存,形成一棵dom树(document对象),将文档的各个组成部分封装为一些对象
SAX:逐行读取,基于事件驱动
xml常用的解析器
定义了一种规则
使用方法
使用步骤
XPath:
public classTestXPath2 {
@Test
publicvoidtest()throwsException{
SAXReaderread= new SAXReader();
Documentdocument= read.read("src/Dom4jTest.xml");
Listnodes= document.selectNodes("/bookstore//book/title");
for(inti= 0;i
selectSingleNode()
selectNodes()
注意:要导包 jaxen...jar
创建解析器 SAXReader reader = new SAXReader()
解析xml 获得document对象 Document document = reader.read(url)
// nodename 选取此节点。
// / 从根节点选取。
// // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
// .. 选取当前节点的父节点。
// @ 选取属性。
// [@属性名] 属性过滤
// [标签名] 子元素过滤
@Test
//遍历所有元素节点
publicvoidtest2()throwsException{
//创建一个xml解析对象
SAXReaderreader= new SAXReader();
//把xml文档加载到document对象中
Documentdocument= reader.read("src/Book.xml");
Elementroot= document.getRootElement();
treeWalk(root);
}
privatevoidtreeWalk(Elementele){
//输出当前节点的名字
System.out.println(ele.getName());
//ele.nodeCount()得到当前节点的所有子节点的数量
for(inti= 0;i
public classTestDom4j {
@Test
publicvoidtest1()throwsException{
//创建一个xml解析对象
SAXReaderreader= new SAXReader();
//把xml文档加载到document对象中
Documentdocument= reader.read("src/Book.xml");
Elementroot= document.getRootElement();
// Element bookNode = root.element("书");
// System.out.println(bookNode.getName());
//得到当前节点所有的子节点
Listlist= root.elements();
//得到第二本书对象
ElementsecOndBook= (Element)list.get(1);
//得到当前节点的文本内容
Stringname= secondBook.element("书名").getText();
System.out.println(name);
}
导入jar包 dom4j.jar
创建解析器
解析xml 获得document对象
SAXReader reader = new SAXReader()
Document document = reader.read(url)
JAXP sun公司提供的解析 支持dom和sax
JDOM
DOM4J dom for java民间方式,但是是事实方式,非常好,支持dom
解析xml
XPATH 专门用于查询
以上就是带你深入了解XML的详细内容,更多请关注 第一PHP社区 其它相关文章!