JavaWeb之XML

1. XML

可擴展的標記語言
可以用來保存數據
可以用來做配置文件
數據傳輸

  • 文檔聲明

    簡單聲明,version表示解析這個XML文檔的解析器版本

    <? xml version="1.0" ?>

    encoding表示編碼

    <? xml version="1.0" encoding="utf-8" ?>

    standalone表示是否是一個獨立文檔,no表示依賴其他文檔,yes表示是一個獨立的文檔

    <? xml version="1.0" encoding="utf-8" standalon="no"?>

  • 元素定義

    元素就是標籤,文檔聲明下面的第一個標籤爲根標籤,所有標籤必須放置到跟元素裏面

    <stus></stus>

  • 普通標籤和複雜標籤

    普通標籤是標籤裏面包含文本

    複雜標是標籤裏面嵌套標籤

  • 註釋

    與html文檔一樣,<!-- -->,不允許放在第一行,必須放在文檔聲明下面

  • CDATA區

    非法字符

    在XML中,只有字符&lt;&是非法的,省略號、引號和大於號是合法的,但是把它們替換成實體引用是個好習慣

    • &lt

    • &gt

    • &amp

    • &apos

    • &qaot

    如果某段字符串中包含類似標籤或者關鍵字,不想讓xml進行解析,可以使用CDATA來包裝 <desc><![CDATA[<a href="www.baidu.com">百度一下,你就指定</a>]]></desc>

2. XML解析

其實就是獲取元素裏面的字符數據或者屬性數據

  • XML解析方式

    有很多種,但是常用的有兩種

    DOM 把整個xml全部讀到內存中,形成樹狀結構,整個文檔稱爲document對象,屬性對應Attribute對象,所有的元素節點對應Element對象,文本也可以稱爲Text對象,以上所有節點稱爲Node節點,如果xml文件過大,會造成內存溢出,可以對文檔進行增刪操作

    SAX 基於事件驅動,讀取一行,解析一行,不可以增刪,只能查詢

  • 針對這兩種解析方式API

    一些組織或者公司,針對以上兩種方式,給出的解決方案有哪些

    jaxp sun公司,比較繁瑣

    jdom

    dom4j 使用比較廣泛

  • Dom4j基本用法
//創建SAX讀取對象
SAXReader reader = new SAXReader();
//指定解析源
Document document = reader.read(new File("src/com/kernel/test/demo03.xml"));
//獲得根標籤
Element rootElement = document.getRootElement();
//獲得子標籤
Element sonElement = rootElement.element("stu");
//獲取所有子標籤
List list = rootElement.elements();
//獲取標籤的屬性值
element.element("name").getText()
  • Xpath使用

    nodename 選區此節點的所有子節點

    /:從根節點選取

    //:從匹配選擇的當前節點選擇文檔中的節點,而不考慮位置

    .:選取當前節點

    ..:選取當前節點的父節點

    @:選取屬性

3. XML約束

如何讓怎麼規定文檔中的元素只出現一次

DTD

語法自成一體,可讀性較差

http://www.runoob.com/dtd/dtd-tutorial.html

Schema

語法和xml一樣,xml解析起來比較方便

http://www.runoob.com/Schema/Schema-tutorial.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章