私の Android アプリは .NET Web メソッドを呼び出しており、単一の文字列を返します。次のような単一の文字列を解析するために saxparser を使用しています。
<string xmlns="http://tempuri.org/">LOCAL NT AUTHORITY\NTLM Authentication Not in role Administrators</string>
そして、データ ハンドラーでの characters() 関数:
public void characters(char ch[], int start, int length) {
String chars = new String(ch, start, length);
Log.v("characters", chars);
chars = chars.trim();
if (_inItem) {
_data = chars;
}
}
私の問題は、Webサーバー1でテストすると問題なく動作しますが、Webサーバー2では空の文字列が返されることです。
Web サーバー 1 では、characters() 関数が 1 回だけ呼び出され、"LOCAL NT AUTHORITY\NTLM Authentication Not in role Administrators" という文字列全体が返されるのを見ました。完全!
しかし、webserver 2 では、charaters() 関数が複数回呼び出され、最終的に空の文字列が返されます..?
04-20 10:09:43.161: VERBOSE/characters(405): LOCAL
04-20 10:09:43.161: VERBOSE/characters(405): NT AUTHORITY\NTLM Authentication
04-20 10:09:43.161: VERBOSE/characters(405): Not in role Administrators
04-20 10:09:43.250: VERBOSE/endElement(405): string=0
スペースの取り扱いについてですか?ここで何が起こっているのですか?
私は characters() 関数を変更してしまいました:
public void characters(char ch[], int start, int length) {
String chars = new String(ch, start, length);
if (_inItem) {
_data += chars;
}
}