zoukankan      html  css  js  c++  java
  • XML语言

    1.1 xml简介

    • a) xml, eXtensible Markup Language, 可扩展标记语言.是一种标记语言.
    • b) xml 是一种非常灵活的语言, 没有固定的标签, 所有的标签都可以自定义.
    • c) 通常, xml 被用于信息的记录和传递. 因此, xml 经常被用于充当配置文件.

    1.2 格式良好的xml

    • a) 声明信息, 用于描述 xml 的版本和编码方式 <?xml version="1.0" encoding="UTF-8"?>
    • b) xml 有且仅有一个根元素
    • c) xml 是大小写敏感的
    • d) 标签是成对的, 而且要正确嵌套
    • e) 属性值要使用双引号

    例如: 

    <?xml version="1.0" encoding="UTF-8"?> 
    <!-- 这里是注释 -->
     <books> 
        <book id="b01">
             <name>java高级编程</name>
             <author>张三</author> 
             <price>50.5</price>
         </book> 
        <book id="b02"> 
            <name>java中级编程</name> 
            <author>李四</author>
             <price>30.5</price> 
        </book> 
    </books>                 

    2. DTD
      2.1 DTD简介
        a) DTD, Document Type Definition, 文档类型定义
        b) DTD 用于约束 xml 的文档格式, 保证 xml 是一个有效的xml.
        c) DTD 可以分为两种, 内部 DTD, 外部 DTD
    2.2 使用DTD 2.2.1 内部 DTD 的定义

    a)语法如下:
      <!DOCTYPE 根元素 [元素声明]> b) 元素声明语法:
      <!ELEMENT 元素名 (子元素[, 子元素...])> c) 数量词
      > +: 表示出现 1 次或多次, 至少一次
      > ?: 表示出现 0 次或 1 次
      > *: 表示出现任意次
    d) 属性声明语法:
      > 属性类型: CDATA, 表示字符数据(character data)
      > 默认值:
      - #REQUIRED, 表示必须出现
      - #IMPLIED, 表示不是必须的
      <!ATTLIST 元素名称 属性名称 属性类型 默认值>
    e) 带 DTD 的完整 xml 代码:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE scores [ <!ELEMENT scores (student+)> 
    <!ELEMENT student (name, course, score)>
    <!ATTLIST student id CDATA #REQUIRED>
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT course (#PCDATA)> 
    <!ELEMENT score (#PCDATA)> ]> 
    <scores> 
        <student id="1"> 
             <name>王同</name> 
             <course>java</course>
             <score>89</score>
         </student> 
        <student id="2"> 
            <name>李佳</name> 
            <course>sql</course> 
            <score>58</score> 
        </student> 
    </scores> 

    2.2.2 外部DTD的定义
    a) 创建一个独立的 dtd 文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT scores (student+)>
    <!ELEMENT student (name, course, score)> 
    <!ATTLIST student id CDATA #REQUIRED> 
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT course (#PCDATA)> 
    <!ELEMENT score (#PCDATA)> 

    b) 在 xml 中引入外部 DTD 文件 

    <!-- 引入外部DTD文件 --> 
    <!DOCTYPE scores SYSTEM "scores.dtd"> 

    3. XML的解析
    对 xml 文件进行操作, 包括创建 xml, 对 xml 文件进行增删改查操作.
      3.1 常见的xml解析技术 3.1.1 DOM解析
        是官方提供的解析方式, 基于 xml 树解析的
      3.1.2 SAX解析
        是民间的解析方式, 基于事件的解析
      3.1.3 JDOM解析
        第三方提供, 开源免费的解析方式, 比 DOM 解析快
      3.1.4 DOM4J
        第三方提供, 开源免费, 是 JDOM 的升级版
      3.2 DOM4J解析XML
        需要导入 dom4j 的 jar 包, 解析 xml 的入口, 是需要先拿到一个 Document 对象
    3.2.1 读取xml文件中的信息

    3.2.2 生成xml文件

     

  • 相关阅读:
    如何关闭内存自动释放池ARC
    你怀疑过“温水煮青蛙”的故事吗
    程序员应该加入的3个QQ群
    简述Oracle 11g 新特性
    ViewState、UpdatePanel及控件OnPre之间的纠葛
    今天,我看到一组图解释“ 什么是博士?”
    Java将何去何从
    给新手朋友 推荐几本书(从C#入门到SQL及设计模式)
    最新版 智能电脑键盘屏幕全记录 免费下载
    C#中两个问号和一个问号
  • 原文地址:https://www.cnblogs.com/zdl2234/p/11237172.html
Copyright © 2011-2022 走看看