一篇读懂(javax xml bind)javax xml bind jaxbEXCEPTION,JAVA 操作笔记-XML(六),java xml,
1、XML(Xtensible markup language可扩展的标记 语言)是什么
(1) 是一种基于文本的通用的数据保存的格式。
a,通用: 即以XML格式保存的数据,可以被其它任何的程序来处理 。
比如:一个点,在java语言里面,可以用一个类Point表示:
Class Point{
int x;
int y;
...
}
那么,一个Point对象要保存下来,可以使用如下几种方式:
方式一: 序列化 (不通用,因为序列化是java语言特有的)。
方式二:数据库(通用)
方式三:自定义一个协议(比如,将数据保存在一个文件里面(10,20),很显示,不通用。
方式四:使用XML
10
20
b,格式
一对标记加上相应的内容(内容可以是普通的文本,也可以是标记),另外,标记还可以有属性。
c,历史
html: 博纳斯.李 1990年发明的(李也是万维网联盟的创建者,互联网之父)。
hello kitty
html --- >xhtml (使用XML语法来重新定义html的结构)
XML采用了与html相似的语法,但是,XML是可扩展的,即可以自定义任意标记。2、XML的基本语法
(1)元素
标记以及标记之间的内容统称为元素 ,比如
10
20
(2)每一个xml文档, 只允许有一个根元素
(3) 元素可以为空 ,称之为空元素,比如 ,空元素也可以简化为
(4) 元素可以有属性 ,属性值必须用引号括起来,比如
10
注意:属性必须要放在开始标记里面。
(5) 元素可以嵌套
(6) 大小写敏感
error!
(7) 实体
1+1<2?
一些特殊的字符,比如<,>,&,," 需要使用相应的实体来代替。如果不代替,解析器在解析xml时,有可能会出错。
< <
> >
& &
" "
(8) CDATA段
<![CDATA[ 不希望解析器解析的内容 ]]>3、XML的解析
(1) 常见的解析方式
a, SAX (Simple API for XML),基于事件处理机制,边读取XML文件,边解析,对内存的要求不高,速度也比较快。其它的一些解析工具( DOM4J )会使用SAX作为底层的解析器。
另外,一些内存容器比较小的场合,比如手机系统,可以使用SAX。
b, DOM (Document Object Model),将整个XML文件读入到内存,生成一棵树,然后对棵进行操作。用得少。
c, DOM4J /JDOM
(2) Object --- >XML
step1,先设计好xml文档的结构
VIP
范伟
CA1748
8:00 am
上海
也可以
范伟
CA1748
8:00 am
上海
step2, 在内存当中创建一个Document 对象(一棵树,根是order)。
step3, 输出4、XML的设计(DTD Document type definition文档类型定义)
(1)DTD是什么?
定义了 xml文档的结构( 定义了一个xml文档里面根元素是什么,可以出现哪些子元素,哪些属性等等)。
(2)DTD文档的基本结构
...
]>
(3)DTD作用
a, 定义xml文档的结构 :有了DTD,就必须按照DTD的要求来写xml文档。
b, 对xml文档的正确性进行验证,如果xml文档没有按照DTD的要求进行编写,则解析器解析时会提示错误 。
一个xml文档符合xml的基本语法,称这个xml文档是正确的,如果这个xml文档还符合DTD文档的要求,则认为这个xml文档是有效的。5、XPATH
(1)XPATH是什么?
可以将xml看成是数据库,那么XPATH就是sql语句 。
(2)使用XPATH
DOM4j已经实现了XPATH规范。可以使用Document.selectNodes(XPATH语句);
比如:
selectNodes("/orders/order/time");
又比如:
selectNodes("/orders/order[1]/time");
[]里面可以用数字(从1开始)来指定是第几个元素。
又比如:
selectNodes("/orders/order[@type=vvip]/time");
@type=vvip 指定该元素的属性值必须是vvip本文系作者 @河马 原创发布在河马博客站点。未经许可,禁止转载。
暂无评论数据