我試圖通過簡單地實現org.xml.sax.ContentHandler
來解析SAX中的一些第一個XML文檔,我不知道我是否理解流程。對於給定的XML文檔:SAX如何解析文檔?
<?xml version="1.0"?>
<list>
<item>
<name>One</name>
<description>The number 1, expressed in letters.
</item>
<item>
<name>Two</name>
<description>The number 2, expressed in letters.
</item>
</list>
什麼是在解析器事件所期待的順序?我是否正確地承擔以下事項:
startDocument()
startElement() -> "list"
startElement() -> "item"
startElement() -> "name"
characters() (>=1 times) -> "One"
endElement() -> "name"
startElement() -> "description"
characters() (>=1 times) -> "The number 1, expressed in letters."
endElement() -> "description"
endElement() -> "item"
startElement() -> "item"
startElement() -> "name"
characters() (>=1 times) -> "Two"
endElement() -> "name"
startElement() -> "description"
characters() (>=1 times) -> "The number 2, expressed in letters."
endElement() -> "description"
endElement() -> "item"
endElement() -> "list"
endDocument()
這就是它的要點嗎?
另外,什麼是最簡單的方法來解析?目前,在每次調用startElement
時,我將保存爲一個私有變量作爲當我在characters
調用中解析數據時的當前元素的名稱。有沒有更容易/更好的方法呢?
不幸的是,我很確定我會使用SAX,因爲我在使用Restlet的Android上,除非您知道更好的解決方案。 –
您是否嘗試過使用[xstream](http://xstream.codehaus.org/faq.htm) – bbaja42