XML初學進階學習筆記(5)(轉)
36、實現新增元素操作的語句如下:
node = root.childNodes.item(0) //確定位置
newNode = myDocument.createElement("company") //建立節點
node.insertBefore(newNode,node.lastNode) //插入節點
textNode = myDocument.creatTextNode("北大方正") //建立文字元素
node.childNodes.item(1).appendChild(textNode) //新增子元素(值)
37、刪除元素:
node = root.childNodes.item(0) //確定位置
oldNode = node.removeChild(node.childNodes.item(1)) //刪除節點
其中,oldNode中存放的是已被刪除的節點。在刪除某個節點時,
以該節點為根的子樹將整個被刪除,因此得到的結果DOM樹恢復原狀。
38、修改元素:
假如想把張三的電子郵件地址更改為zhs@pku.edu.cn,透過下列語句就可以實現:
node = root.childNodes.item(0) //查詢節點
emailNode = node.childNodes.item(0) //確定要修改元素位置
emailNode.childNodes.item(0).nodevalue = zhs@pku.edu.cn //替換元素
39、SAX介面分析:
SAX的全稱是Simple APIs for XML,也即XML簡單應用程式介面。
與DOM不同,SAX提供的訪問模式是一種順序模式,這是一種快速讀寫XML資料的方式。
當使用SAX分析器對XML文件進行分析時,會觸發一系列事件,並啟用相應的事件處理函式,
應用程式透過這些事件處理函式實現對XML文件的訪問,因而SAX介面也被稱作事件驅動介面。
SAX是一種事件驅動的介面,它的基本原理是由介面的使用者提供符合定義的處理器,
XML分析時遇到特定的事件,就去呼叫處理器中特定事件的處理函式。一般SAX介面都是用JAVA實現的,
但事實上C++也可以用於實現SAX介面,只是C++的分析器比較少。之所以叫做"簡單"應用程式介面,
是因為這個介面確實非常簡單,絕大多數事情分析器都沒有做,需要應用程式自己去實現,
因而開發者的任務也相應重一些。
40、SAX分析器中的幾個主要API介面作一簡單的介紹。
SAXParserFactory
SAXParserFactory物件用來按照系統屬性中的定義建立一個分析器的例項,介面是Javax.xml.parser. SAXParserFactory。
Parser
org.xml.sax.Parser介面定義了類似setDocumentHandler的方法來建立事件處理函式。
另外,該介面中還定義了parser(URL)方法來對XML文件進行實際的分析工作。
DocumentHandler
當分析器遇到XML文件中的標記時,就會啟用該介面中的startDocument,endDocument,startElement以及endElement等方法。
另外,characters方法以及processingInstruction方法也是在DocumentHandler介面中實現的。
當分析器遇到元素內部的文字內容時就會啟用characters方法,當分析器遇到處理指令時就會啟用processingInstruction方法。
ErrorHandler
當分析器在分析過程中遇到不同的錯誤時,ErrorHandler介面中的error、fatalError或者warning方法就會被啟用。
DTDHandler
當處理DTD中的定義時,就會呼叫該介面中的方法。
EntityResolver
當分析器要識別由URI定義的資料時,就會呼叫該介面中的resolveEntity方法。
一個典型的SAX應用程式至少要提供一個DocumentHandler介面。一個健壯的SAX應用程式還應該提供ErrorHandler介面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift進階學習筆記Swift筆記
- Go 進階學習筆記Go筆記
- python進階學習筆記(一)Python筆記
- Koa2進階學習筆記筆記
- 線段樹進階 學習筆記筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- 圖論進階學習筆記(四)(2024.10.4)圖論筆記
- XML學習筆記–背誦版XML筆記
- 【Go學習筆記16】解析xmlGo筆記XML
- [寒假學習筆記](二)Python初學筆記Python
- Redux 進階 – react 全家桶學習筆記(二)ReduxReact筆記
- Redux 進階 - react 全家桶學習筆記(二)ReduxReact筆記
- 線段樹進階應用學習筆記(二)+普通資料結構進階應用學習筆記(一)(2024.10.1)筆記資料結構
- 安卓初學基礎學習筆記安卓筆記
- 基於docker 初學 MongoDb 學習筆記DockerMongoDB筆記
- Vue學習筆記5Vue筆記
- JVM學習筆記——初識JVMJVM筆記
- 【Nginx學習筆記】-初識NginxNginx筆記
- Oracle高階培訓 第5課 學習筆記Oracle筆記
- nginx進階-3(32-34天)學習筆記Nginx筆記
- 人臉識別學習筆記二:進階篇筆記
- 強化學習-學習筆記5 | AlphaGo強化學習筆記Go
- 【Web】Web 階段學習筆記Web筆記
- MySQL高階學習筆記(二)MySql筆記
- Redis學習筆記(一)——初識RedisRedis筆記
- 初級英語學習筆記01筆記
- MongDB學習筆記(一) 初遇篇筆記
- LevelDB學習筆記 (1):初識LevelDB筆記
- spring-5學習筆記Spring筆記
- HTML5學習筆記HTML筆記
- [學習筆記 #5] 雜湊筆記
- python初學筆記Python筆記
- 初學java進位制轉換方面補充學習Java
- repuest轉發學習筆記一筆記
- Vue 學習筆記 (一) -- 初識 VueCli 3Vue筆記
- 初識C語言(01)—學習筆記C語言筆記
- HTTP Client 學習筆記 (一) 初遇篇HTTPclient筆記
- substrate學習筆記1:Substrate初體驗筆記
- 階段性總結_學習筆記筆記