【发布时间】:2011-10-04 23:07:18
【问题描述】:
我试图通过简单地实现org.xml.sax.ContentHandler 来解析我在SAX 中的一些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 调用中解析数据时,我将当前元素的名称保存为私有变量。有没有更简单/更好的方法?
【问题讨论】: