解析android中的大xml文件
问题描述:
在我的应用程序中有一个搜索选项。如果用户输入搜索值,我必须从web服务获取一个值。我正在获得一个大的webservice值。在我的web服务字符串值即将到来。我喜欢< >像xml字符实体引用一样。我想要替换所有字符并解析xml。任何人都可以告诉我如何做到这一点,举个例子吗?解析android中的大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("&"))
buf.append('&');
else if (substr.equals("<"))
buf.append('<');
else if (substr.equals(">"))
buf.append('>');
else if (substr.equals("""))
buf.append('"');
else if (substr.equals("'"))
buf.append('\'');
else if (substr.equals(" "))
buf.append(" ");
else
// ????
buf.append(substr);
i = pos;
}
} else {
buf.append(c);
}
}
return buf.toString();
}
我试过流的,我没有能够做到这一点。任何人都可以举例说明如何做到这一点?
答
您不应该自行分析它。有更好的方法 - SAX或DOM。 该资源包含了很多关于这两种方式有用inforamtion的(和代码示例太):http://onjava.com/pub/a/onjava/2002/06/26/xml.html
答
到这里看看,以了解详细内容,关于Android包括解析器:
http://developer.android.com/reference/javax/xml/parsers/package-summary.html
但用SAX制作你自己的解析器可能是你的最佳选择;)
你的意思是,“应该**不要**自己解析它”吗? – 2011-02-17 16:29:08