问答详情
源自:3-3 使用 SAX 解析 XML 文件的节点名和节点间文本

SAX解析

SaxParserHandler里面的方法都是系统调用的吗?那顺序是怎样的呢?为什么characters()方法输出的结果可以直接跟在节点名字的后面?没有懂,请大神指教

提问者:追梦人_0025 2016-03-31 11:21

个回答

  • LeePaddy
    2016-05-23 20:52:30

    1 遇到<?xml version="1.0" encoding="UTF-8"?>,则自动调用startDocument()

    2 接着,凡是遇到开始标签<>,则先自动调用startElement()

    3 如果解析标签后,标签内有内容,则自动调用characters()

    4 如果解析标签后,标签内还有标签,也是像第二步一样调用startElement()。

    上述三步如此反复进行。

    5 遇到结束标签</>,则自动调用endElement()

    6 xml文档结束时,则自动调用endDocument()

    我觉得是这样。希望帮到您。

  • 颠覆IT
    2016-04-01 17:06:24

    其实我也不知道,,我是菜鸟

  • Jccch
    2016-04-01 15:29:46

    个人理解,以此抛砖引玉☺:

    我认为是这样的顺序:startElement>>characters>>endElement,这是相对于每一个标签而言的,还记得视频中,老师第一次使用characters(),程序的运行结果吗?当时他是有很多空行的(在3-3中的10:30秒开始的),就是因为调用了characters()方法.

    这是我的个人理解,也不知道是对还是错,希望能有所帮助!