在android中解析大xml文件

在android中解析大xml文件,android,Android,在我的应用程序中有一个搜索选项。如果用户输入搜索值,我必须从Web服务获取一个值。我得到了很大的Web服务价值。在我的webservice中,字符串值即将出现。我越来越喜欢xml字符实体引用。我想替换所有字符并解析xml。有谁能告诉我怎么做并举个例子吗 我尝试使用StringBuffer作为unescapexml字符,内存不足错误 public String unescapeXML(String str) { if (str == null || str.length() ==

在我的应用程序中有一个搜索选项。如果用户输入搜索值,我必须从Web服务获取一个值。我得到了很大的Web服务价值。在我的webservice中,字符串值即将出现。我越来越喜欢xml字符实体引用。我想替换所有字符并解析xml。有谁能告诉我怎么做并举个例子吗

我尝试使用
StringBuffer
作为unescapexml字符,内存不足错误

public  String unescapeXML(String str) {
        if (str == null || str.length() == 0)
          return "";

        StringBuffer buf = new StringBuffer();
        int len = str.length();
        for (int i = 0; i < len; ++i) {
          char c = str.charAt(i);
          if (c == '&') {
            int pos = str.indexOf(";", i);
            if (pos == -1) { // Really evil
              buf.append('&');
            } else if (str.charAt(i + 1) == '#') {
              int val = Integer.parseInt(str.substring(i + 2, pos), 16);
              buf.append((char) val);
              i = pos;
            } else {
              String substr = str.substring(i, pos + 1);
              if (substr.equals("&amp;"))
                buf.append('&');
              else if (substr.equals("&lt;"))
                buf.append('<');
              else if (substr.equals("&gt;"))
                buf.append('>');
              else if (substr.equals("&quot;"))
                buf.append('"');
              else if (substr.equals("&apos;"))
                buf.append('\'');
              else if (substr.equals("&nbsp;"))
                  buf.append(" ");

              else
                // ????
                buf.append(substr);
              i = pos;
            }
          } else {
            buf.append(c);
          }
        }
        return buf.toString();
      }
公共字符串unescapeXML(字符串str){
如果(str==null | | str.length()==0)
返回“”;
StringBuffer buf=新的StringBuffer();
int len=str.length();
对于(int i=0;i

我试过用stream,但我做不到。有人能举个例子说明如何做到这一点吗?

你不应该自己解析它。还有更好的方法——SAX或DOM。
本资源包含大量关于这两种方法的有用信息(以及代码示例):

您不应该自己解析它。还有更好的方法——SAX或DOM。
本资源包含了大量关于这两种方法的有用信息(以及代码示例):

请查看此处,以获取有关包含android的解析器的更多详细信息:


但在您的情况下,使用SAX创建自己的解析器可能是最好的选择;)

看看这里,了解更多关于android内置解析器的详细信息:

但在您的情况下,使用SAX创建自己的解析器可能是最好的选择;)

你的意思是“不应该自己解析它”?你的意思是“不应该自己解析它”?