2011-02-19 24 views
1

我將DefaultHandler擴展爲解析xml。 我解析這個網頁: http://maps.googleapis.com/maps/api/directions/xml?origin=staten%20island&destination=florida&sensor=falseAndroid中的DefaultHandler類不讀取xml中的整個字符串

我得到所有折線>點。 一切工作正常,除了一個特定的字符串。 我重寫字符方法的DefaultHandler這樣的:

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; 
    } 

} 

長度返回282當字符串是長660個字符。 這是字符串:

qhitFxpifMn @ T @ vA型CdM WnnBjeEtI | PlIxNxHhMjLdQ | dAlwA ~CxfEfOxRlK O〜PdUvOlTnHdJbYl \ fVlW [email protected][email protected]~gA gAfKzKbP [email protected]@|wAnuBjZ|[email protected]~F JJP | I | Qzr @~AbKpSĴ〜OvGdKnPhUbMpN〜{@〜{@ tLhMlZfZnI〜ILH @ NH @ NN [email protected]|MrF|MhKpRbF IR_ @喬@LtS~MzYp[[email protected]|F LbLvQzHrJfv @ FZ @ nUxXh AtoAlGzIl AbwAvMfRx_AnmAlr @ Z} @jQtTfJxJv] H] buDfqDjFrGbI〜K | E〜HpFnKlFfLzB | FjElMhCvI | T [email protected]@[email protected] MnEjT〜EvQhF O~F NjCjFhEtHlEbHbk @ BX @ FWB^nSvXnSrYxGpKjDvGnDxHnHdR〜_A | gCdNz] tEtMfs @ zlBbHhQ | jDzoH | r @ lzA | Yvk @ xClFvJxRhInOhP \hJ|PbIvOxB|E|[email protected][email protected]@hfA|D|IrDrJzlAriDhF[email protected] @j | Afy @{DtFzX|[email protected]@[email protected][email protected] Dj^hBvN | BbO | D1]

而這正是DefaultHandler的返回:

qhitFxpifMn @ T @ vA型CdM WnnBjeEtI | PlIxNxHhMjLdQ | dAlwA ~CxfEfOxRlK O〜PdUvOlTnHdJbYl \ fVlW [email protected][email protected]~gA gAfKzKbP [email protected]@|wAnuBjZ|[email protected]~F JJP | I | Qzr @~AbKpSĴ〜OvGdKnPhUbMpN〜{@〜{@tLhMlZfZnI 〜Ilh @ nh @ nN [email protected]|MrF|MhKpRbF Ir_ @ jo @LtS~MzYp[[email protected]|F LbLvQzHrJfv @ fz @ nUxXh`Ato

它停在字符282處,我不知道爲什麼。

+0

我只是想說同樣的話。 – 2011-02-19 04:33:51

回答

4

ContentHandler接口的文檔,這是由的DefaultHandler實現:

SAX解析器可返回所有連續的字符數據中的單個塊,或者它們可以將其分割成幾個存儲塊

您需要將來自多個調用的數據聚合到StringBuilder中的此方法,然後在endElement調用中處理該數據。

+0

謝謝,它現在有效 – user624056 2011-02-20 05:00:26

相關問題