方立勋_30天掌握JavaWeb_XML
什么是XML?
w3c推出xml技術本來是想要替代html,然而一直沒有成功,結果是過渡誕生了xhtml技術。
XML常見應用
**
XML語法
編碼亂碼問題
如下一段XML代碼:
如果用記事本這段XML代碼,保存的時候默認是ANSI編碼方式保存,然而代碼中encoding="utf-8"指定瀏覽器用utf-8編碼去解析,所以這樣會導致在瀏覽中出現亂碼。為什么在eclipse等工具中可以正常,那是因為eclipse中新建xml文件保存的時候默認會和encoding的指定的編碼方式一致。
Tip:處理指令
處理指令,簡稱PI (processing instruction)。處理指令用來指揮解析引擎如何解析XML文檔內容。
例如,在XML文檔中可以使用xml-stylesheet指令,通知XML解析引擎,應用css文件顯示xml文檔內容。 <?xml-stylesheet type=”text/css” href=”1.css”?>
處理指令必須以“<?”作為開頭,以“?>”作為結尾,XML聲明語句就是最常見的一種處理指令。
XML約束
DTD,全稱為文檔類型定義
文件清單:book.dtd
<!ELEMENT 書架 (書+)><!ELEMENT 書 (書名,作者,售價)><!ELEMENT 書名 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售價 (#PCDATA)>文件清單:book.xml
<?xml version="1.0" ?> <!DOCTYPE 書架 SYSTEM "book.dtd"> <書架><書><書名>Java就業培訓教程</書名><作者>張孝祥</作者><售價>39.00元</售價></書><書><書名>JavaScript網頁開發</書名><作者>張孝祥</作者><售價>28.00元</售價></書> </書架>DTD語法細節:元素定義1
- 在DTD文檔中使用ELEMENT聲明一個XML元素,語法格式如下所示:
<!ELEMENT 元素名稱 元素類型> - 元素類型可以是元素內容、或類型
- 如為元素內容:則需要使用()括起來,如
<!ELEMENT 書架 (書名,作者,售價)>
<!ELEMENT 書名 (#PCDATA)> - 如為元素類型,則直接書寫,DTD規范定義了如下幾種類型:
EMPTY:用于定義空元素,例如<br/> <hr/>
ANY:表示元素內容為任意類型。
- 如為元素內容:則需要使用()括起來,如
DTD語法細節:元素定義2
- 元素內容中可以使用如下方式,描述內容的組成關系
- 用逗號分隔,表示內容的出現順序必須與聲明時一致。<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
- 用|分隔,表示任選其一,即多個只能出現一個
<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)> - 元素內容使用空白符分隔,表示出現順序沒有要求:<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)> *
- 在元素內容中也可以使用+、*、?等符號表示元素出現的次數:
+: 一次或多次 (書+)
?: 0次或一次 (書?)
: 0次或多次 (書) - 也可使用圓括號( )批量設置,例
<!ELEMENT MYFILE ((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
XML編程(CRUD)
CRUD:create、read、update、delete
XML解析方式分為兩種:dom和sax
dom:(Document Object Model, 即文檔對象模型) 是 W3C 組織推薦的處理 XML 的一種方式。
(1. dom解析的優點是對文檔crud比較方便,缺點是占用內存比較大)
sax: (Simple API for XML) 不是官方標準,但它是 XML 社區事實上的標準,幾乎所有的 XML 解析器都支持它。
(2. sax解析的優點是占用內存少,解析速度快,缺點是只適合做文檔的讀取,不適合做文檔的crud)
XML解析器
Crimson、Xerces 、Aelfred2
XML解析開發包
Jaxp、Jdom、dom4j
總結
以上是生活随笔為你收集整理的方立勋_30天掌握JavaWeb_XML的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第十三章:Java_反射机制
- 下一篇: 在一个程序设计里,不同的功能窗口有着相似