(6)XML编程基础(四部分:入门、作用、语法、XML解析之DOM解析)

1 XML入门

         1.1 引入

                   HTML,超文本标记语言。

                   html语言语法是很松散的!                 

                   1)标签不区分大小写的!

                   2)标签可以不匹配的。

                  所以 由w3c组织,针对html的语法缺陷,去设计了另一门,叫xml语言。

                   html语言的标签是固定的。

        1.2 XML语言

                       XML:,  Extend Markup lanuage 可扩展标记语言。

                       

 HTMLXML
概念超文本标记语言 可扩展标记语言
标记数量是固定的是不固定的,可扩展的
作用负责网页的结构1)描述带关系的数据结构(作为软件的配置文件)
2)装载数据(作为小型的“数据库”)。
    

                            HTML               XML

概念       超文本标记语言      可扩展标记语言

标记数量   是固定的             是不固定的,可扩展的

作用       负责网页的结构       1)描述带关系的数据结构(作为软件的配置文件)

                                                  properties配置文件:键值对 name=eric   password=123456

                                                  xml可以描述包含与被包含的关系。

                                                                                             <student>

                                                                                                       <name></name>

                                                                                             </student>

                                                                                             <student>

                                                                                                       <name></name>

                                                                                             </student>

                                                            配置使用场景:

                                                                                1)框架(struts2 , hibernate,spring),xml作为框架的配置文件

                                                                                2)tomcat服务器软件配置文件(web.xmlserver.xml)                        

                                       2)装载数据(作为小型的“数据库”)。

                                                                                                      

2 XML作用

        2.1 作为软件配置文件

    PCweb服务器:学生管理系统 ->添加学生 -> name=张三,age=20->提交到后台程序->把数据存储到数据库中              

     两台通讯条件: IP地址和端口

                            java代码:根据ip和端口连接数据库服务器(ip改动会改变代码)

          properties文件:

                                                                 ip=211.34.21.43

                                                                 port=20

                                     xml文件:

                                               <host-list>

                                                        <hostid="main">

                                                                 <ip>211.34.21.43</ip>

                                                                 <port>20</port>

                                                        </host>

                                                        <hostid="backup">

                                                                 <ip>211.34.21.44</ip>

                                                                 <port>20</port>

                                                        </host>

                                               </host-list>

             PC数据库服务器1:oracle数据库     211.34.21.43     20                    

             PC数据库服务器2:oracle数据库     211.34.21.44     20

    2.2 作为小型数据库                      

                   教师管理系统      教师信息:姓名  工龄  邮箱地址

                  传输数据:

                                     字符串:  张|三|20|zhangsan@qq.com|.......|....   (格式不是行业规范的,不通用)

                                     xml格式:

                                               <teacher-list>

                                                        <teacher>

                                                                 <name></name>

                                                                 <email></email>

                                                                 <workage></workage>

                                                                 ....

                                                        </teacher>

                                                        <teacher>

                                                                 <name></name>

                                                                 <email></email>

                                                                 <workage></workage>

                                                                 ....

                                                        </teacher>

                                               <teacher-list>              xmlw3c组织的制定的标准)

                                     json格式

                           

                                     获取字符串,截取字符串数据。

                   财务系统

                                     发邮件给教师:

                                     邮箱地址   姓名

                     方案1:财务系统中也存储了一套教师信息。数据维护成本比较高了!!!

                     方案2: 财务系统使用的教师数据从教师管理系统中发送过去的。

3 XML语法                             

     3.1标签

                            <student>学生</student> 

          注意:

                            1)分带标签体的标签,也有空标签。

                            2)标签是区分大小写

                            3)标签一定要配对

                            4)标签中间不能含有空格

                            5)不能使用数字开头

                            6)如果没有指定名称空间的话,标签名中间不能含有冒号

                            7)在同一个xml文件中,有且仅有一个根标签                                   

     3.2属性

                            <student id="1"></student>

         注意:

                   1)一个属性分为属性名和属性值。属性名和值之间使用=号分割。

                   2)属性值一定要使用单引号或者双引号包含,不能省略,也不能单双混用!

                   3)一个标签内可以包含多个属性,但是不能出现同名的属性

    3.3注释

                            <!--  xml --->

   3.4文档声明

                            <?xml version="1.0"  encoding="码表"?>

                                     version:xml的版本号

                                     encoding:表示解析xml文件内容时使用的码表

                                     xml文件的编码问题:          

                                               1)xml文件内容保存的编码(另存为-》选择编码保存)

                                               2)解析xml文件内容的编码(   <?xml version="1.0" encoding="utf-8"?> )

                            以上两个编码必须保存一致,才能避免中文乱码问题。

                            注意: 如果在ecplise开发工具上,编写xml文件,那么xml文件内容自动按照文档声明的encoding的编码保存,所以不会中文乱码问题.                 

   3.5转义字符

                            和html的转义字符相同.

   3.6CDATA块

                            把CDATA块中的内容全部原样输入

4 XML解析

   4.1 xml解析方式

                   1)DOM解析:

                   2)SAX解析

   4.2 DOM解析的工具

                   Sun官方jaxp工具

                   jdom工具

                   dom4j工具:三大框架读取xml文件的程序。(非官方的,第三方的)

                                     dom for java

                                     iphone4s  iphone for steven   

  4.3  dom4j工具使用

                  1)到dom4j的官方下载 。dom4j-1.6.1.zip

                  2)导入dom4j的支持jar包、dom4j-1.6.1.jar核心包

总结:xml解析

           dom解析方法: dom4j的工具      

                            查:

                                   标签:        element("name") 

                                                        elements("name")

                                                        elements();

                                                        getName()标签名称

                                                        getRootElement():根标签

                                    属性: atrributeValue("name") 属性值

                                                        atrribute("name")  对象

                                                        atrributes()  属性对象列表

                                                        getName(): 属性名

                                                        getValue()属性值

                                     文本:getText(); 当前标签的文本

                                               elementText("name")  子标签的文本  

                            增:

                                               DocumentHelper.createDocument()   文档

                                               addElement("name");   标签

                                               addAtribute("name","value" )  属性                  

                            改:            setValue()   修改属性值

                                               addAttribute(”同名“)修改属性值

                                               setText()    修改文本内容

                            删除:         detach()   标签、属性

                                               getParent().remove(标签/属性)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值