我遇到了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>
答案 0 :(得分:2)
每个人都搞砸了实现ContentHandler characters
方法,因为它完全不直观。诀窍是,对于单个元素文本节点,可以对characters方法进行多次调用,您必须在缓冲区中累积传入的片段。 See the Java tutorial on SAX.对于混合内容,您必须从startElement和endElement的缓冲区中获取文本。
如果这不能解答您的问题,请向我们展示一些代码。
答案 1 :(得分:1)
SAX通常会让您惊讶,直到您知道对经验的期望。
您可能希望暂时将某些控制台日志记录放在事件处理程序中,或者甚至只是将它们全部断开,并设置一个小测试以查看您获得的内容。我更喜欢登录这样的情况,因为它给了我所能期待的“大局”。
FWIW,Stax在性能上更容易和相似。