
我的猜测是,您将每次调用都
characters视为交付
cat元素的完整文本。您应该对处理程序进行编码,以便连续调用以
characters累积文本,并且仅在
endElement事件发生时捕获它:
public class CatHandler extends DefaultHandler { private StringBuilder chars = new StringBuilder(); public void startElement(String uri, String lName, String qName, Attributes a) { final String name = qName == null ? lName : qName; if ("cat".equals(name)) { chars.setLength(0); } else . . . } public void endElement(String uri, String lName, String qName) { final String name = qName == null ? lName : qName; if ("cat".equals(name)) { String catName = chars.toString(); // do something with cat name } else . . . } public void characters(char[] ch, int start, int length) { chars.append(ch, start, length); }欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)