我试图通过简单地实现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