xml学习笔记

1、HTML与XML的区别

(1) html语言中存在着几个缺陷(松散,不区分大小写,可以不匹配),针对这个不足点提出了xml(extend markup lanuage)标签语言(可扩展标记语言)。
  html的标记是固定的,但是XML中的标记是不固定的,可扩展的。
  html负责页面结构,

(2) xml来描述关系的数据结构
    1、作为软件的配置文件)
    xml配置使用场景:
        1)框架(strust2,hibernate,spring)中,xml作为框架的配置文件
        2)Tomcat服务器软件配置文件(web.xml,server.xml)
    2、装载数据,作为一种小型的数据库;
xml的语法:
    标签:
        <student></student>
        <student/>    <!--表示一个空标签-->
    标签:
    1)分带标签体的标签,也有空标签
    2)标签是区分大小写的
    3)标签一定要配对
    4)标签中不能含有空格
    5)不能使用数字开头
    6)可以使用下划线开头
    7)在一个xml文件中,有且只有一个根标签。
    
    属性:
    <student id="1">student</student> 其中的ID部分就是属性部分
    1)属性值一定要用单引号或者是双引号包含,不能省略,也不能单双混用
    2)一个标签里面可以包含多个属性,但是不能出现同名的属性
    注释:
    xml的注释和html的注释是一样的。
    文档声明:
    <?xml version="1.0" encoding="utf-8"?>
    version:xml的版本号
    encoding:表示解析xml文档所使用的码表
    
    xml的编码问题:
    1)xml的内容保存编码
    2)解析xml文件内容的编码
    以上两个编码一定要保持一致,才能避免中文乱码的问题

    转义字符:
    和html的转义字符一致
    <student id="1">student&lt;name&gt;张三&lt;/name&gt;</student>
    
    CDATA块:
    将CDATA中的内容原样输出。
    <![CDATA[
    <student id="1">student&lt;name&gt;张三&lt;/name&gt;</student>
    ]]>
    
    处理指令(基本上过时了,这个在功能上和html是相同的):
    只显示标签内容,不显示标签名称
    <?xml-stylesheet type="text/css" href=""?>
    
    XML解析方式:
    1)DOM解析
     当xml解析引擎解析完xml文件后,会把xml文件的各个部分分装成对象,通过对象获取xml文件信息,甚至改变xml文件的
     DOM解析工具:
     sun官方jaxp
     jdom
     dom4j工具:三大框架读取xml文件的程序。
    2)SAX解析
    
    XML中空格和换行都会被解析到,但是Java中的空格和换行是没有意义的,只是为了代码格式的美观。
   
    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()修改属性值
            addAtribute()修改属性值
            setText()修改文本内容
        删除:
            detach() 删除标签、属性值
            getParent().remove(标签/属性值)
 

原文地址:https://www.cnblogs.com/yongdongma/p/10099338.html