2012-05-09 7 views
0

私はSAXパーサを使用してXMLドキュメントを解析しています。私は、2つの要素タグの間に設けられたデータをキャプチャする文字メソッドを使用してデータをチャンクで提供されるという事実を占めています:文字メソッドが要素のすべてのデータをキャプチャしない - SAXパーサー - Java

StringBuilder currentText = new StringBuilder(); 

... 

public void characters(char ch[], int start, int length) { 
     if (currentText!=null) { 
      for (int i=start; i<start+length; i++) { 
       currentText.append(ch[i]); 
      } 

その後、私は使用していますのendElementメソッドで:

public void endElement(String namespaceURI, String localName, String qName) throws SAXException { 
     System.out.println("Current Text is " + currentText.toString()); 
     currentText.setLength(0); 

}

問題は、ログを見ると、currentTextはXMLの大きなデータフィールドの一部の内容全体をキャプチャしていないことです。

これはなぜ起こっているのでしょうか?

ありがとうございます。

+0

データサイズは? – UVM

+0

こんにちはUNNI。私が見ている1つの要素には、15516項目が含まれ、各項目は6桁の浮動小数点数です。 – GuybrushThreepwood

+0

はコンマで区切られた数字ですか? – UVM

答えて

0

さて、currentText == nullの可能性は常にあります。その可能性を排除することはできません。あなたは

公共のStringBuilder APPENDを使用することができますが、報告されたいくつかの空白を不足している可能性があり

(文字列str []、int型のlenオフセットINT):追記を行うには、あなたのキャラクターのループが恐ろしく非効率的であることを

注意ignorableWhitespaceコールバックに、私はそれが空白だけが欠落していた場合は、あなたが私たちに言っただろうと思います。

申し訳ございません、もうお勧めできません。私の祖母のモットーに従ってください。あなたが何かを探して見つけられない場合は、間違った場所を探していることを意味します。他の場所を見てください。

+0

マイケルありがとう - 私はそのモットーが好きで、それが正しいと分かりました。私はlogcat TRUNCATES STRINGSを発見するまで数時間を無駄にしました。 (深呼吸)。すべてが実際にうまくいきました。 – GuybrushThreepwood

関連する問題