我正在经历this tutorial并且我注意到startElement方法被调用了两次,但我没有看到任何方法调用...它似乎自动发生...你能解释一下这是怎么回事方法叫做?
答案 0 :(得分:1)
回调方法在到达对象开头时由分析器对象调用。 例如,要使用SAX解析器解析xml文件,您将拥有:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = spf.newSAXParser();
saxParser.parse(new File(sourceFile), this);
其中"这个"指实现接口 ContentHandler 的当前类。我们覆盖回调方法,例如 startElement ,当saxParser读取某些事件时,它们将被调用。
如果感兴趣,请参考this page关于回调函数。
答案 1 :(得分:0)
startElement
在新标记出现时启动,当您关闭此标记时,会调用endElement
。所以,如果你有这样的事情:
<jobs>
<job>
<id>4</id>
...
...
</job>
</jobs>
第一个xml解析器打开jobs
标记,然后打开job
。完成后,他先拨打job
,然后拨打jobs