xml

1.什么是xml?
xml 是 (eXtensible  Markup  Language,可扩展标记语言);
2.xml有什么用?
xml设计宗旨是表示数据,html是用来显示数据的,目前的版本有1.0,在实际开发中,xml常常以程序的配置文件存在。


注意: xml没有预定义的标签,html中的都是预定义标签,xml可以自定义标签。
3.xml语法 
文档声明 必须在文档的第一行
        <?xml version="1.0"  encoding="utf-8" ?>
        
元素 有且仅能有一个root结点,xml文档不会忽略空格和换行,严格区分大小写


元素的属性  属性取值一定要用双引号或单引号 引起来


注释     <!-- 和html注释一样 -->


CDTAT区 (CD,Charactor  Data)显示的都是文本
        <![CDTAT[
         文本内容
        ]]>
        
特殊字符 <  &lt   ,  > &gt


处理指令 用来指挥软件如何解析xml




4.两种xml约束
DTD  (Document  Type  Definition,文档类型限定)
作用:约束xml文档的书写规范
注意:当保存DTD文件时必须按utf-8的格式保存。


如何导入文件来约束xml文档。
这儿要分两种情况:
在本地的dtd文件:<!DOCTYPE  根元素名称  SYSTEM  "dtd文件的路径">
在网络上的dtd文件:<!DOCTYPE 根元素名称 PUBLIC "dtd文件的名称"  "dtd的url路径">


dtd的扩展名是什么?  就是.dtd


dtd语法:






Schema
其扩展名是 .xsd


什么是名称空间。
在编写完成XML Schema 文档完成后,需要要为文档中的元素绑定到一个RUI上,Schema技术用一个术语---名称空间。以后就可以
通过这个uri告诉解析器,这些元素来自哪里,被谁约束。


怎么根据Schema文档写xml文件。可分为四步
-------先找到根结点
----------找到对应schema文档中声明的名称空间
-------------SchemaLocation 是说 名称空间与哪个文件对应
---------------SchemaLocation 又来自哪里呢?来自远方




Schema语法






注意:Schema约束正在逐步替代DTD。


5.常用的三种解析xml方式


XML DOM 解析
 
解析原理:
xml  DOM  是 w3c的标准,xml  dom 解析与html  dom  解析 很类似,它们都会将对应某个文件的全部数据加载到内存中,在内存中映射出一根树的结构。
其中的根结点也document对象。


想要解析要对xml,具体怎么实现?
------------首先必须先得到document对象


首先通过DocuemntBuilderFactory类得到工厂实例
            DocumentBuilderFactory   fac = DocumentBuilderFactory.newInstance();


再通过这个工厂实例创建DocumentBuilder对象
                DocumentBuilder   builder =  fac.newDocumentBuilder();
 
通过builder与想要解析xml文件相关联得到Document对象


                   Document document =  builder.parse("xxxxxx");


注意:xml 解析和 sax 解析 已经被集成到了java se中了。可以直接使用,不需要导入外部的包,而demo4j则需要导包。


SAX解析


sax解析不是w3c的标准,它是对xml 文件 一行一行进行解析的。


sax解析原理:
       sax解析是基于事件的驱动进行解析的。


sax解析xml的具体怎么实现?
首先肯定是得到工厂实例
  SAXParserFactory  factory =SAXParserFactory.newInstance();
                
SAXParser  parser  = factory.newSAXParser();


parser.setContentHandler();设置事件的处理方式,接受的是ContentHandler接口类型,也可以是extends DefaultHandler(适配器)。
parser.parse("要解析的xml文件");




demo4j解析:
demo4j是一个开源组织的东西,所以需要先下载对应的api和文档。
demo4j集成了xml dom 和 sax的优点,目前很多东西都在用demo4j进行解析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值