標籤:des style color java 使用 os io strong
1.XML基礎
2.XML文法
3.XML DOM
4.Javascript解析XML文檔
1.XML基礎
eXtensible Markup Language 可延伸標記語言 (XML)
XML是一種平台無關的用於攜帶和傳送資料的方法。
~~~~xml主要是描述資料是什麼,一般沒有資料如何呈現的資訊,有別於HTML,HTML可以說是xml的一種實現。(註:xhtml才是xml的一種實現)
xml文檔可以用IE 文字編輯器或者專門的XML編輯器瀏覽
~~~xml不同平台的資料交換,但不適合大批量資料的儲存與處理(有別於資料庫)
多個xml文檔的元素之間還可以定義主外鍵關係
xml優點:
~~~通用性,可擴充性,自我描述性
xml的用途
~~作為一種通用的資料格式,儲存和交換資料;用作設定檔
2.XML文法
XML文檔聲明
XML處理指示
XML元素(元素 元素屬性 元素內容)
<?xml version="1.0" encoding="utf-8" ?> <!--xml文檔聲明-->
<?xml-stylesheet type="text/xsl" href="mystyle.xsl" ?><!--xml處理指示 可選-->
<stu-roster> <!--xml元素-->
<student>
<id>A001</id>
<name>dingdang</name>
</student>
<student>
<id>A009</id>
<name>kitty</name>
<student>
</stu-roster>
~~~XML文檔聲明 必須包含version屬性,其他屬性如下 順序不能打亂。
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
XML處理指示
為處理XML文檔的應用程式提供提示資訊
XML解析器會把處理指示原封不動的傳給處理常式,由處理應用程式按照指令的提示資訊進行處理
使用格式顯示XML文檔
用CSS定義外觀樣式或者用XSL定義外觀 Xml Stylesheet Language 後者功能更強大
XML元素: 起始標識 結束標記 屬性 內容
<title>霧都孤兒</title>
XML所有元素都必須有結束標記。
標籤名區分大小寫,開始標籤和結束標籤要匹配
元素內容:
元素包含子項目
元素直接包含內容
元素沒有任何內容 空標記
根項目:沒有嵌套在其他元素內的元素 最高層元素
文檔內所有元素都是根項目的子孫元素。
根項目要有且僅有一個
元素內容
CDATA Character DATA 字元資料
指定不想被解析程式解析的一片未經處理資料區。
PCDATA Parsed Character DATA 由XML解析器解析的字元資料
CDATA例子:
<![CDATA[...anything can go here...]]>
CDATA區內不能出現字元"]]>"
可以在CDATA區內嵌入其他語言的代碼,如javascript等。
PCDATA區 PCDATA 需要被XML解析器解析的字元資料
直接寫在起始標記和結束標記之間的內容。
字元轉義
有些特殊字元不能出現在PCDATA區內,需要用字元實體替代,如 < &等
< <
> >
& & ampersand
&apo ‘ apostrophe
" "
XML注釋 同HTML <!-- comment -->
xml文檔聲明必須是第一行代碼,注釋不能放在XML文檔聲明之前。
3.XML DOM
DOM 是所有瀏覽器都支援的一種標準,它定義了一組與瀏覽器和程式設計語言都無關的標準對象,利用這些物件模型可以方便地操作XML文檔
DOM是最為流行的XML文檔訪問方式。
DOM的優缺點:一般使用DOM時,把所有XML文檔資訊都存放在記憶體,遍曆容易,但是記憶體佔用高,解析較慢
DOM樹形結構 XML文檔的每個成分都看作是一個節點。
節點類型:
Document 根節點 9
DocumentType DTD引用的對象的表現形式 10
Element 元素節點 1
Attr 屬性節點 2
Text 文本節點 3
CDataSection 字元資料節點 4
Comment 注釋節點 8
DOM樹形結構中,節點間的關係:parent child sibling
4.javascript解析XML文檔
XML DOM的屬性和方法
javascript操縱XML DOM
現在大多數的瀏覽器都支援XML
IE和Mozilla的瀏覽器都通過javascript提供對XML的支援
javascript處理XML文檔的基礎是DOM樹形結構
在javascript中有關於DOM的API,在這些API中定義了DOM的屬性和方法。
利用javascript中的DOM API可以實現對XML文檔的訪問、建立、刪除,修改等操作。
用javascript處理XML文檔是ajax技術的核心
javascript處理XML文檔的工作原理:
1.建立XML DOM對象
2.載入XML文檔的內容
3.調用javascript關於XML DOM的屬性和方法進行處理。
建立XML DOM對象 IE和非IE瀏覽器建立方法不同
IE用ActiveX外掛程式中的 MSXML庫實現對XML的支援
var xmlDom=new ActiveXObject(aVersion);
aVersion的取值可以是 Microsoft.XMLDOM
MSXML2.DOMDocument
MSXML2.DOMDocument3.0
MSXML2.DOMDocument4.0
MSXML2.DOMDocument5.0
MSXML2.DOMDocument6.0
如:
var xmlDom=new ActiveXObject("MSXML2.DOMDocument6.0");
IE支援2中載入XML文檔的方法:load()和loadXML()
var xmlDoc=xmlDom.load(url); //預設採用非同步方式載入XML文檔資料
//同步方式載入XML文檔資料
xmlDom.async=false;
var xmlDoc=xmlDom.load(url);
var xmlDoc=xmlDom.loadXML(sXml); //sXML為XML格式的字串
Firefox下獲得XML DOM對象
在Firefox瀏覽器中需要調用document.inplementation對象的createDocument()方法建立一個XML DOM對象。
var xmlDom=document.inplementation.createDocument("","",null);
Firefox瀏覽器只支援load()方法載入XML文檔。
var xmlDoc=xmlDOM.load("test.xml");
擷取XML DOM對象--跨瀏覽器安全色的方法,使用zXML庫實現跨瀏覽器對XML的支援。
var xmlDom=zXMLDom.createDocument();
zXML支援2中方法載入XML文檔,同IE. xmlDom.load(),xmlDom.loadXML();
>>>>操作XML文檔<<<<<
節點的屬性:
nodeType
nodeName
nodeValue
attributes 元素節點的屬性
節點導航
firstChild
lastChild
childNodes
previousSibling 前一個兄弟節點
nextSibling 下一個兄弟節點
documentElement 指向XML文檔的根節點,只有Document對象有該屬性。Document.documentElement
owerDocument 指向這個節點所屬文檔。
XML DOM的方法:
建立節點:
createElement(tagName) 建立標籤名為tagName的元素。
createTexNode(text) 建立文本節點
createAttribute(attrname) 建立一個屬性節點 屬性未賦值
createDocumentFragment() 建立文檔片段節點
createProcessingInstruction(target,data);
讀取節點:
getElementByTagName(tagname) //返回標籤名為tagname的nodelist
getAttribute(attrname) //擷取當前節點中 屬性名稱為attrname的屬性值
setAttribute(attrname,attrvalue) 設定屬性節點的值
setAttributeNode(attrNode) 某節點屬性節點列表的尾部添加一個屬性節點。
添加刪除節點的方法:
appendChild(node);
removeChild(node)
replaceChild(newNode,oldNode)
insertBefore(newNode,oldNode);