Мое приложение Android вызывает веб-метод .NET и возвращает одну строку.Я использую 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;
}
}
Моя проблема в том, что когда я тестирую ее с веб-сервером 1, работает нормально, но с веб-сервером 2 возвращает пустую строку.
С веб-сервером 1 я увидел, что функция characters () вызывается только один раз, и она возвращает всю строку «LOCAL NT AUTHORITY \ NTLM Authentication Not in role Administrators».Отлично!
Но с веб-сервером 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
Это про обработку пробелов?Что тут происходит?
В итоге я сменил функцию символов ():
public void characters(char ch[], int start, int length) {
String chars = new String(ch, start, length);
if (_inItem) {
_data += chars;
}
}