gpt4 book ai didi

java - android sax解析器不完整的字符数组

转载 作者:行者123 更新时间:2023-12-01 15:00:29 25 4
gpt4 key购买 nike

我找到了一些与此问题相关的帖子,但找不到解决方案。问题是,在 character() 函数上,ch[] 数组包含上次调用的不完整或最后一个元素,这种情况有时会发生,但 98% 的情况下都可以正常工作。文件名没有特殊字符,也没有奇怪的名称。

如果有,

<tag>image1test.jpg<tag> 
<tag>image2bla.jpg<tag>

工作时,char数组包含正确的值,但不工作时,当为示例中的第二个标签调用字符函数时,我们得到,

[i,m,a,g,e,2,b,e,s,t](上次调用的剩余字符)

如何解决?谢谢。

@Override
public void characters(char ch[], int start, int length) {
if(this.v_new){
myNewsXMLDataSet.setNews(new String(ch, start, length));

}

最佳答案

解析器不需要仅在处理程序上调用一次characters(char[],int,int)。您必须预期多次调用,并且仅在调用 endElement() 方法之后才处理该值。

public class Handler extends DefaultHandler {

private StringBuilder sb = new StringBuilder();
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
sb.append(ch, start, length);

}

@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
doStuffWith(sb.toString());
sb = new StringBuilder();
}
}

关于java - android sax解析器不完整的字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13723855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com