java_xml

1、xml的应用:
不同的系统之间传输数据
用来表示有关系的数据
经常用在配置文件

2、xml的语法
(1)xml的文档声明
创建一个文件,后缀名是 .xml
如果写xml,第一步:必须要有一个文档声明(谢了文档声明之后,表示写xml文件的内容)
<?xml version="1.0" ending="gbk">
文档声明必须写在第一行,第一列
version:表示xml的版本
coding:xml的编码
中文乱码问题
保存的和写的要写成同一个编码
(2)定义元素(标签的定义)
标签的定义

标签的定义有开始就必须要有结束<persion></perdion>
标签没有内容,可以在标签内结束:<aa/>
一个标签可以嵌套,必须要合理嵌套
合理嵌套<aa><bb></bb></aa>
一个xml文件,只能有一个跟标签,其他标签都是在这个标签下面 

在xml中把空格和换行都当成内容来解析
<aa>11111</aa>

<aa>
11111
</aa>
这两个是不一样的

xml的标签名命规则
(1)xml代码是区分大小写的
(2)不能以数字或者下划线开头
(3)不能以xml开头,不管大小写都不行
(4)不能包含空格和冒号

(3)、xml中的注释
<!-- 注释 -->
(4)、xml中的特殊字符
如果想要在xml中表示a>b ,不能正常显示,以为把<当做标签
要想使用就要对特殊字符 < 进行转义
<  &lt;
>  &gt;
(5)、CDATA区
可以解决多个字符都需要转义的操作 
把这些内容放到CDATA区里面,不需要转义了
写法:
<![CDTA[  内容    ]]>
(6)xml中的约束
xml的约束:dtd约束和schema约束

dtd的入门
(1)创建一个文件,后缀名是.dtd
步骤:看xml中有多少个元素,有几个元素就写几个<!ELEMENT>
(2)判断元素是简单元素还是复杂元素
-简单元素:没有字元素
<!ELEMENT 元素名称 (子元素)
-复杂元素:有子元素的元素就是复杂元素
<!ELEMENT 元素名字 (#PCDATA)>
    (3)需要在xml文件中引入dtd文件
    <!DOCTYPE 根元素名称 SYSTEM "dtd文件的路径">
   
    打开xml文件使用浏览器打开的,浏览器只负责校验xml的语法,不负责校验约束
    如果想要校验xml 的约束,需要使用工具(myeclipse)
   
(7)xml的解析的简介(写到java代码)
xml是标记型文档
js是使用dom解析标记型文档?
-根据html的层级结构,在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象
-document对象,element对象,属性对象,文本对象,node节点对象
xml的解析方式:dom 和 sax
-sax 解析是采用时间驱动,边读边解析
缺点:不能实现增删查改操作
-dom 根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性和文本都封装成对象
缺点:使用dom方式解析xml时候,如果文件过大,造成内存溢出
优点:使用dom特点:很方便实现增删改操作
(8)jaxp的api的查看
-jaxp是java的一部分   
-jaxp解析器在jdk的javax.xml.parsers包里面
-四个类:分别是针对dom和sax解析使用的类,
dom:
DocumentBuilder:解析器类
-这个类是一个抽象类,不能new
此类的实例课从DocumentBuilderFactory.newDocumentBuilder();方法获取到
-一个方法可以解析xml,parse("xml路径") 返回的是Document整个文档
- 返回的document是一个接口,父节点是 Node,如果在document里面找不到想要的方法,到Node里面去找
-在document里面方法
getElementsByTagName(String tagname)
-这个方法可以得到标签
-返回集合NodeList

createElement(String tagname)
-创建标签

-创建文本
createTagNode()

-把文本添加到标签后面
apendChid();

-删除节点
removeChild();

-获取父节点
getParentNode()

NodeList
-getLength() 得到集合长度
-item(int index)下标取到具体值
for(int i = 0; i <list.getLength(); i++)
{
list.item(i);
}
DocumentBuilderFactory:解析类工厂
-这个类也是抽象类,不能new
newInstance()获取DocumentBuilderFactory的实例

sax:
SAXParser:解析器类
SAXParserFactory:解析器工厂
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值