精彩的。这个解决方案让我有点困惑,我无法像您一样获得 localName 的值,但我仍然能够使用 StringBuilder 方法来工作。
我没有在方法中替换:
public void characters(char[] ch, int start, int length) throws SAXException {
tempVal = new String(ch,start,length);
而是将以下行添加到该方法中:
tempSB = tempSB.append(new String(ch, start, length));
其中 tempSB 是 StringBuilder 对象。
这意味着我不需要改变整个解析器,并且可以在必要时简单地切换到读取 SB。
当我遇到一个包含 html 的元素时,在 startElement 中,我使用了:
tempSB.delete(0, tempSB.length());
在 endElement 中我使用了:
tempText.setText(tempSB.toString()) ;
就那么简单。在我的例子中不需要复杂的布尔系统,也不需要访问 localName,这是一个我无法理解的概念。我似乎访问 qName 做得很好。
非常感谢 kcoppock 发布您找到的解决方案。我已经找了好几个小时了,这是我能找到的唯一一篇简洁明了、足以提供帮助的文章。我正在做的任务非常紧急,如果没有你的帮助我就会失败。