下面是關(guān)鍵的SAX API的摘要:
類 | 用法 |
---|---|
SAXParserFactory | 創(chuàng)建由系統(tǒng)屬性javax.xml.parsers.SAXParserFactory確定的解析器的實(shí)例。 |
SAXParser | SAXParser接口定義了幾個(gè)重載的parse()方法。 |
SAXReader | SAXParser包裝一個(gè)SAXReader,并從SAXParser的getXMLReader()方法返回。 |
DefaultHandler | DefaultHandler實(shí)現(xiàn)了ContentHandler,ErrorHandler,DTDHandler,和EntityResolver接口。 通過(guò)使用DefaultHandler,我們可以只覆蓋我們需要的那些。 |
ContentHandler | 此接口定義回調(diào)方法,如startDocument,endDocument,startElement和endElement。 這些方法在識(shí)別XML標(biāo)記時(shí)調(diào)用。它還定義了被調(diào)用的方法characters()當(dāng)解析器遇到XML元素中的文本時(shí)。它定義被調(diào)用的processingInstruction()當(dāng)解析器遇到內(nèi)聯(lián)處理指令時(shí)。 |
ErrorHandler | 它使用error(),fatalError()和warning()方法來(lái)響應(yīng)各種解析錯(cuò)誤。 默認(rèn)的錯(cuò)誤處理程序只會(huì)拋出致命錯(cuò)誤和的異常忽略驗(yàn)證錯(cuò)誤。 |
DTDHandler | 用于處理DTD |
EntityResolver | 它的resolveEntity()方法用于標(biāo)識(shí)數(shù)據(jù)。 |
我們通常實(shí)現(xiàn)大多數(shù) ContentHandler
方法。
為了提供更穩(wěn)健的實(shí)現(xiàn),我們可以從ErrorHandler
實(shí)現(xiàn)方法。
SAX解析器在下表中列出的軟件包中定義。
包 | 描述 |
---|---|
org.xml.sax | 定義SAX接口。 |
org.xml.sax.ext | 定義用于更高級(jí)SAX處理的SAX擴(kuò)展。 |
org.xml.sax.helpers | 定義SAX API的輔助類。 |
javax.xml.parsers | 定義SAXParserFactory類,它返回SAXParser。 |
javax.xml.parsers.DocumentBuilderFactory
類返回一個(gè) DocumentBuilder
實(shí)例。
我們使用 DocumentBuilder
實(shí)例來(lái)產(chǎn)生一個(gè) Document
對(duì)象退出XML文檔。
構(gòu)建器由系統(tǒng)屬性 javax.xml.parsers.DocumentBuilderFactory
確定。
DocumentBuilder 中的 newDocument()
方法可以創(chuàng)建一個(gè)實(shí)現(xiàn) org.w3c.dom.Document
接口的空Document。
我們可以使用其中一個(gè)構(gòu)建器的解析方法來(lái)創(chuàng)建一個(gè) Document
從現(xiàn)有的XML文檔。
文檔對(duì)象模型實(shí)現(xiàn)在中定義下表中列出的軟件包。
包 | 描述 |
---|---|
org.w3c.dom | 定義XML文檔的DOM編程接口。 |
javax.xml.parsers | 定義DocumentBuilderFactory類和DocumentBuilder類。 |
TransformerFactory
創(chuàng)建一個(gè) Transformer
對(duì)象。
XSLT API在下表中顯示的包中定義。
包 | 描述 |
---|---|
javax.xml.transform | 定義TransformerFactory和Transformer類。 我們可以從變換器對(duì)象調(diào)用transform()方法來(lái)進(jìn)行變換。 |
javax.xml.transform.dom | 用于從DOM創(chuàng)建輸入和輸出對(duì)象的類。 |
javax.xml.transform.sax | 用于從SAX解析器創(chuàng)建輸入對(duì)象和從SAX事件處理程序輸出對(duì)象的類。 |
javax.xml.transform.stream | 用于從I / O流創(chuàng)建輸入對(duì)象和輸出對(duì)象的類。 |
StAX為開發(fā)人員提供了SAX和DOM解析器的替代方法。
StAX可以用更少的內(nèi)存進(jìn)行高性能流過(guò)濾,處理和修改。
StAX是用于流式XML處理的標(biāo)準(zhǔn)的雙向拉解析器接口。
StAX提供比SAX更簡(jiǎn)單的編程模型,并且比DOM更高的內(nèi)存效率。
StAX可以解析和修改XML流作為事件。
StAX APIs在下表中顯示的包中定義。
包 | 描述 |
---|---|
javax.xml.stream | 定義迭代XML文檔元素的XMLStreamReader接口。 定義XMLStreamWriter接口,指定如何寫入XML。 |
javax.xml.transform.stax | 提供StAX特定的轉(zhuǎn)換API。 |
更多建議: