程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> XML,xml格式化

XML,xml格式化

編輯:JAVA綜合教程

XML,xml格式化


  XML:eXtensible Markup Language 可擴展標記語言

 

  XML與Html比較

  XML Html 設計宗旨 存儲與傳輸數據 顯示數據 標簽 自定義 預定義 語法 嚴格 松散

 

  XML亂碼相關問題

  原因:存儲XML的文件的編碼格式與XML文件第一行中聲明的<?xml version="1.0" encoding="編碼" ?>不相符,導致XML錯誤。

  分析:存儲XML的文件的編碼格式是XML文件的實際編碼類型,而文件聲明的encoding是告訴打開它的應用程序,要用我指定的編碼方式進行解碼,故出錯。

  解決方法:encoding改為文件的編碼,或者改變文件的編碼即可。

  疑問:你可能想如果我不指定的encoding呢?

  答案:如果未指定encoding,打開XML的應用程序將會兩種情況打開:

      1 按照文件的編碼打開(最好不過了)

      2 按照應用程序的默認編碼打開,比如有些浏覽器按照默認UTF-8打開。

  啟示:XML文件必須加上encoding,這樣萬無一失。

 

XML約束

  目前,XML約束分為2類,dtd,和schema。

  dtd:缺點不能准確限制數據類型。
    dtd分類:
      * 內部dtd:在xml內部定義dtd
      * 外部dtd:在外部文件中定義dtd
      * 本地dtd文件:<!DOCTYPE students SYSTEM "student.dtd">
      * 網絡dtd文件:<!DOCTYPE students PUBLIC "名稱空間" "student.dtd">

  dtd詳情請見菜鳥教程:http://www.runoob.com/dtd/dtd-tutorial.html
  schema:
    導入xsd約束文檔:
      1、編寫根標簽
      2、引入實例名稱空間 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      3、引入名稱空間 xsi:schemaLocation="http://www.itcast.cn/xml       student.xsd"
      4、引入默認的名稱空間

  schema詳情請見菜鳥教程:http://www.runoob.com/schema/schema-tutorial.html

  看到這裡,不知道做Java EE的同學認出了,這是JavaEE項目中web.xml開頭那段總是TMD看不懂的代碼。那裡采用的就是schema約束。

 

XML解析

  xml解析思想:
    * DOM解析:將文檔加載進內存,形成一顆dom樹(document對象),將文檔的各個組成部分封裝為一些對象。
      * 優點:因為,在內存中會形成dom樹,可以對dom樹進行增刪改查。
      * 缺點:dom樹非常占內存,解析速度慢。

    * SAX解析:逐行讀取,基於事件驅動
      * 優點:不占內存,速度快
      * 缺點:只能讀取,不能回寫

  xml常用的解析器:
    * DOM4J:
      1.導入jar包 dom4j.jar,最新為dom4j-1.6.1.jar
      2.創建解析器
          SAXReader reader = new SAXReader();
      3.解析xml 獲得document對象
          Document document = reader.read(url);

    * XPATH:專門用於查詢
      * 定義了一種規則。
      * 使用的方法:
          * selectSingleNode():
          * selectNodes():
      使用步驟:
        1、注意:要導包dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar兩個包。
        2、創建解析器
            SAXReader reader = new SAXReader();
        3、解析xml 獲得document對象
            Document document = reader.read(url);

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved