xml解析包含空格的单个字符串

时间:2011-04-19 22:24:33

标签: android xml saxparser

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

我的问题是,当我使用网络服务器1进行测试时,它可以正常运行,但是对于网络服务器2,它会返回空字符串。

使用webserver 1,我看到只调用一次characters()函数,它返回整个字符串“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;
    }
}

1 个答案:

答案 0 :(得分:0)

这就是定义sax接口的方式,可以有多个字符调用,不希望你在一次调用中获得单个元素中的所有字符。如果您需要将整个字符串整合在一起,那么可以根据您的实现来收集它们并将它们连接在一起。