Java SAX解析器两次返回相同的元素,第二次返回为空

Java SAX解析器两次返回相同的元素,第二次返回为空,java,android,saxparser,Java,Android,Saxparser,当我试图解析简单的xml文件时,我的Sax解析器做了一件奇怪的事情 <?xml version="1.0"?> <organization> <employee> <title>Harry0</title> <link>Smith0</link>

当我试图解析简单的xml文件时,我的Sax解析器做了一件奇怪的事情

<?xml version="1.0"?>
<organization>
                <employee>
                                <title>Harry0</title>
                                <link>Smith0</link>
                                <date>hs0</date>
                                <salary>200000-0</salary>
                </employee>

                <employee>
                                <title>Harry1</title>
                                <link>Smith1</link>
                                <date>hs1</date>
                                <salary>300000-1</salary>
                </employee>

                 <employee>
                                <title>Harry2</title>
                                <link>Smith2</link>
                                <date>hs2</date>
                                <salary>300000-2</salary>
                </employee>
</organization>
这是我的xml文件

<?xml version="1.0"?>
<organization>
                <employee>
                                <title>Harry0</title>
                                <link>Smith0</link>
                                <date>hs0</date>
                                <salary>200000-0</salary>
                </employee>

                <employee>
                                <title>Harry1</title>
                                <link>Smith1</link>
                                <date>hs1</date>
                                <salary>300000-1</salary>
                </employee>

                 <employee>
                                <title>Harry2</title>
                                <link>Smith2</link>
                                <date>hs2</date>
                                <salary>300000-2</salary>
                </employee>
</organization>
输出是,

10-19 14:41:02.261: E/title(7754): Harry0
10-19 14:41:02.261: E/title(7754):                                 
10-19 14:41:02.281: E/title(7754): Harry1
10-19 14:41:02.297: E/title(7754):                                 
10-19 14:41:02.297: E/title(7754): Harry2
10-19 14:41:02.297: E/title(7754):   
空行和标题行的标签名称相同,即
title


为什么Sax解析器会两次返回所有内容?

您不会覆盖endElement()方法。characters()可能会被多次调用,您应该收集感兴趣的数据,而不仅仅是在第一次调用characters()时分配数据

然后解析器点击
标记,但您看不到它并收集另一个字符块,直到下一个
标记。您应该覆盖startElement和endElement方法,收集字符串并在点击
endElement()