XML有关概念及语法

XML基本概念简介

1.1引入

    HTML超文本标记语言
    HTML语法是很松散的!
    1标签不区分大小写
    2.标签可以不匹配。

由W3C组织 针对HTML的语法缺陷,设计了另一门语言xml

HTML语言的标签是固定的。

1.2xml语言

可扩展标记语言
        HTML        vs           xml

概念 超文本标记语言 可扩展标记语言
标记数量 是固定的 是不固定的,可扩展
作用 负责网页的结构 1)描述代关系的数据结构(作为软件的配置文件)
properties配置文件键值对 name =eric passwork=12456
xml可以描述包含于被包含的关系




配置使用场景:框架(struts2,hibernate,spring)
通用的代码+配置文件
xml 作为框架的配置文件
2.)Tomcat服务器的软件的配置文件也是xml
2.转载数据(作为小型的“数据库”)

xml的作用

2.1作为软件的配置文件

PC学生管理系统-》添加学生-》name=“张三,age=20-》提交到后台程序-》把数据存储到数据库中
    俩台通讯条件
        IP地址和端口
        java代码 根据IP和端口 连接数据库服器IP改变会改变代码
properties 
                IP=211.34.21.43
                prot=20
            xml 文件
            <host-list>
                <host id="main">
                    <ip>21134.21.43</ip>
                    <port>20</port>
                </host>
                <host id="backup">
                    <ip>21134.21.44</ip>
                    <port>20</port>
                </host> 
            ,</host-list>       
PC  mysql 
PC数据库服务器    oracle 数据库:  211.34.21.43  20
PC数据库服务器    oracle 数据库:  211.34.21.44  20

2.2作为小型的数据库

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

传输数据
    字符串  张三 |20|zhangsan@qq.com|...|...(格式不是行业规范的,不通用)
        xml格式
<teacher-liat>
                <teacher>
                    <name></name>
                    <email></email>
                    ...
                </teacher>
                <teacher>
                    <name></name>
                    <email></email>
                    ...
                </teacher>                  
            </teacher-list>  (xml是W3C组织制定的标准)
        json

    获取字符串   ,截取字符串数据。 
财务系统 
    发邮件给老师
        邮箱地址        教师姓名        
方案1:财务系统中也存储了一套教师的信息,数据维护的成本比较高
方案2:财务系统使用的教师数据从教师管理系统中发送过来的。

3.xml语法

3.1标签

    <student>学生</student>
注意:
    1.)分带标签体的标签,页可以使空标签。(<student/)
    2)标签是大小写区分的
    3)标签一定要配对
    4)标签中间不能还有空格
    5)不能以数字开头 但可以用字符或下划线开头
    6)如果没有指定名称空间的话,标签名中间不能包含冒号
    7)在xml文件中有仅有一个根标签

3.2属性

<student id="1"></student>  
注意  
1)一个属性分为属性名和属性值,属性名和属性值之间用=号分割
2)属性值一定要使用单引号或双引号并且必须单双配对,不能省略
3)一个标签可以包含多个属性,但是不能出现同名的属性。

必须有引号,且引号必须配对

**

3.3注释

**
编码 字符-》字节(查码表)默认GBK 另存为设置
解码 字节-》字符(查码表)默认utf-8 文档声明
3.4文档声明

3.5转义字符

**
和HTML转移字符
**

3.6CDATA块

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

        <![CDATA[

        ]]>

    <stduent>
    <![CDATA[
    <name>学生</name>
    <age> 18</age>
    ]]>
    </stduent>
        3.7处理命令
    <?xml-stylesheet type="text/css"  href="" ?>

**

4.IO BufferReader 字符流 不可取

**
XML解析方式

1)DOM解析

     当xml解析引擎解析完xml文件之后,会吧xml文件的各个部分封装成对象,通过对象获取xml文件的信息,甚至改变xml文件的信息
    这种做法叫做dom编程
    xml解析引擎会把xml文件在内存中创建一个树状结构,这棵树上的分支,叫节点(Node)
    xml信息                               dom 对象
    节点                                  Node对象
        节点名称
        节点类型(标签,属性,文本)          
    标签                                  Element对象
        标签名             
        包含属性
        包含文本
    属性:                             Attribute对象
        属性名 
        属性值
    文本                                  Text对象
        文本内容

    Document对象,代表一个xml文件,从Document对象开始获取xml文档树上的每个节点(标签节点,属性节点,文本节点)
    1.)获取节点对象
    2.获取或设置节点对象
***

2)SAX解析


**

4.2DOM解析的工具

**

Sun官方jaxp
jdom工具
dom4j工具  三大框架读取xml文件的程序(非官方的)
dom for java
hierbnate  

**

4.3dom4j工具使用

**
1.)到dom4j的官网上下载
2.)导入dom4j的支持的jar包

dom解析方法
            dom4j的工具
 查 
    标签 element(“name")
        elements("name");
        elements();
        getName()标签名称
        getRootElement()根标签

    属性
        attributeValue("name")属性值
        attribute(”name");对象
        attributes()属性对象列表
        getName()属性名
        getValue();属性值
    文本
        getText():当前标签文本
        elementText(“name”)子标签的文本
    增
        DocumentHelper.createDocument(); 文档
        addElement("name");标签
        addAttribute("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、付费专栏及课程。

余额充值