我正在尝试通过简单实现org.xml.sax.ContentHandler
来解析我的一些首个XML文档,并且我不知道我是否理解了流程。对于给定的XML文档:
<?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
。是否有更简单/更好的方法?