Both StAX and SAX are a type of XML parser APIs. Here, API stands for Application Programming Interface and Parser is used to read and extract content from an XML document in desired format. From this line, it is clear that StAX and SAX are used to read XML documents.
APIs are a modern way to migrate real time information on the Web. In this article, we will discuss the difference between StAX and SAX Parser in Java.
它的全名是可擴展標記語言(eXtensible Markup Language),據說它是一種資料描述語言。在其中,使用者可以根據需要定義自己的標籤。它以基於樹的結構儲存訊息,使其簡單易懂。
這是範例XML文件 −
<?xml version="1.0"?> <grocery> <cart id = "c101"> <item> Milk </item> <price> 65 </price> <quantity> 15 </quantity> </cart> <cart id = "c102"> <item> Bread </item> <price> 30 </price> <quantity> 10 </quantity> </cart> <cart id = "c103"> <item> Butter </item> <price> 40 </price> <quantity> 5 </quantity> </cart> </grocery>
Transferring data from one source to another source requires a transformation of the data format. By parsing methods like StAX and SAX, we can read and transform XML data into required format.
它是Simple API for XML的縮寫。它從頭到尾逐行讀取XML文件。每當在解析過程中遇到任何標籤時,它會呼叫方法並為使用者檢索資訊。
For example, suppose we want to access the address from an XML document and there is a tag name 'address' in that document. In that case, when SAX parser reached that tag, it will call the method to retrieve the tag .
SAX解析器的介面 −
SAXParserFactory − 它是解析器的對象,它是解析的第一個任務。
SAXParser − It defines a method named ‘parse()’ that is used for parsing.
SAXReader − 它處理與SAX事件處理程序的通訊。
It is an abbreviation of Streaming API for XML. It was developed to eliminate the limitation of SAX parser. It contains two APIs, one is cursor API and another one is event iterator API. The cursor API handles the event iterator API handles the events.
StAX解析器的介面
XMLStreamReader
#XMLStreamWriter
XMLEventReader
#XMLEventWriter
Now let’s discuss the differences between StAX and SAX Parser. Consider the following table below −
SAX解析器 |
#StAX解析器 |
---|---|
#這是一個用於XML文件的簡單API。 |
這是一個用於XML文件的串流API。 |
這是一種推送類型的API,意味著它會推送所需的資料。 |
這是一種拉取類型的API,意味著它拉取所需的資料。 |
SAX works on event based model. |
StAX工作不適用於基於事件的模型,而是適用於基於樹的模型。 |
It can only perform reading operations on the XML document. |
It is bidirectional and can perform both reading and writing operations on the XML document. |
There is no or less control over the parsing process. It parses all the information even if we don't need them. |
#StAX提供了對解析的完全控制。我們可以提取所需數據並丟棄不需要的數據。 |
It does not have any additional API. |
It provides two additional APIs cursor API and event iterator API. |
SAX以自上而下的方式讀取XML文件,無法提供隨機存取。 |
StAX也採用自上而下的讀取方式,但提供對資訊的隨機存取。 |
在這篇文章中,我們區分了StAX和SAX解析器。在這個過程中,我們發現了XML,它是一種資料描述語言。它提供了各種解析器,如StAX和SAX,用於讀寫XML檔。這兩個解析器在許多方面相似,但在功能和工作方式上存在差異。
以上是在Java中,StAX與SAX解析器的比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!