在我的应用程序中有一个搜索选项。如果用户输入搜索值,我必须从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("&"))
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();
}
我尝试使用流,但我无法做到。任何人都可以举例说明如何做到这一点吗?
答案 0 :(得分:3)
你不应该自己解析它。有更好的方法 - SAX或DOM。 这个资源包含了很多有关这两种方式的有用信息(以及代码示例):http://onjava.com/pub/a/onjava/2002/06/26/xml.html
答案 1 :(得分:0)
看看这里是为了获得有关Android包含解析器的更多细节:
http://developer.android.com/reference/javax/xml/parsers/package-summary.html
但是使用SAX创建自己的解析器可能是您的最佳选择;)