sax:解析混合内容文本时出现问题

时间:2011-07-05 15:08:49

标签: java xml sax

我遇到了xml文件的一部分问题。我用sax和java解析它。
我无法获得文本的所有部分(文本的开头,文本的中间,文本的结尾)。

<sometag type="aType">  
     beginning of the text          
     <anothertag type="anotherType" target="aTarget">middle of the text</anothertag>
     end of the text
</sometag>

2 个答案:

答案 0 :(得分:2)

每个人都搞砸了实现ContentHandler characters方法,因为它完全不直观。诀窍是,对于单个元素文本节点,可以对characters方法进行多次调用,您必须在缓冲区中累积传入的片段。 See the Java tutorial on SAX.对于混合内容,您必须从startElement和endElement的缓冲区中获取文本。

如果这不能解答您的问题,请向我们展示一些代码。

答案 1 :(得分:1)

SAX通常会让您惊讶,直到您知道对经验的期望。

您可能希望暂时将某些控制台日志记录放在事件处理程序中,或者甚至只是将它们全部断开,并设置一个小测试以查看您获得的内容。我更喜欢登录这样的情况,因为它给了我所能期待的“大局”。

FWIW,Stax在性能上更容易和相似。