我正在扩展DefaultHandler来解析xml。 我正在解析这个页面: http://maps.googleapis.com/maps/api/directions/xml?origin=staten%20island&destination=florida&sensor=false
我得到所有折线>点。 除了一个特定的字符串外,一切正常。 我正在重写DefaultHandler中的characters方法,如下所示:
public void characters(char[] ch, int start, int length) throws SAXException {
if (currentElement) {
Log.v("Length", length+"");
currentValue = new String(ch, start, length);
currentElement = false;
}
}
当字符串长度为660个字符时,长度返回282。 这是字符串:
qhitFxpifMn @ T @ vA型CdM
WnnBjeEtI | PlIxNxHhMjLdQ | dAlwA ~CxfEfOxRlK
O〜PdUvOlTnHdJbYl \ fVlW q@~p@~gA
gAfKzKbP Rpa@bi@|wAnuBjZ|c@rD~F
JJP | I | Qzr @ ~AbKpS
Ĵ〜OvGdKnPhUbMpN〜{@〜{@ tLhMlZfZnI〜ILH @ NH @ NN O~GbJjEpGpErHbIfPpDxIvDpKzRvp@rE|MrF|MhKpRbF
IR_ @乔@ LtS~MzYp[bw@hEvJ|F
LbLvQzHrJfv @ FZ @ nUxXh AtoAlGzIl
AbwAvMfRx_AnmAlr @ Z} @jQtTfJxJv] H] buDfqDjFrGbI 〜K | E〜HpFnKlFfLzB | FjElMhCvI | T w@vDnPzChPx@vFdBhOrh@xlFbNptAvAdMnB
MnEjT〜EvQhF O~F
NjCjFhEtHlEbHbk @ BX @ FWB ^ nSvXnSrYxGpKjDvGnDxHnHdR〜_A | gCdNz] tEtMfs @ zlBbHhQ | jDzoH | R @ LZA | Yvk @ xClFvJxRhInOhP {{ 1}} @Ĵ| AFY @ \hJ|PbIvOxB|E|m@plA~LpUzs@dwAvj@hfA|D|IrDrJzlAriDhFfR~Uv~@h
^了Dj hBvN | BBO | DL]
这就是DefaultHandler返回的内容:
qhitFxpifMn @ T @ vA型{DtFzX|BtOpArLvSjcCv@dNJjEGbFDdDVnElAnIx@xDnC~JbApFb@fDbKb~@
WnnBjeEtI | PlIxNxHhMjLdQ | dAlwA CdM
O〜PdUvOlTnHdJbYl \ fVlW ~CxfEfOxRlK
gAfKzKbP q@~p@~gA
JJP | I | Qzr @ Rpa@bi@|wAnuBjZ|c@rD~F
Ĵ〜OvGdKnPhUbMpN〜{@〜{@ tLhMlZfZnI〜ILH @ NH @ NN ~AbKpS
IR_ @乔@ O~GbJjEpGpErHbIfPpDxIvDpKzRvp@rE|MrF|MhKpRbF
LbLvQzHrJfv @ FZ @ nUxXh`Ato
它停在角色282处,我不知道为什么。
答案 0 :(得分:4)
来自ContentHandler接口的文档,由DefaultHandler实现:
SAX解析器可以在一个块中返回所有连续的字符数据,或者它们可以将它分成几个块
您需要在StringBuilder中聚合多次调用此方法的数据,然后在endElement调用中处理该数据。