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