gpt4 book ai didi

java - 解析 xml ...我认为这个问题。是关于编码的

转载 作者:行者123 更新时间:2023-12-01 14:27:56 24 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序。它有一个 XML 解析器。 XML 是我的 api 响应的类型这是我将其下载到 InputStream 的方式:

private InputStream downloadUrl(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String encoded;
encoded = "Basic " + Base64.encodeToString("user:pass".getBytes(), 0);
conn.setRequestProperty("Authorization", encoded);
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
return stream;
}

如果用户和密码正确,则 XML 的输出为:

<status>true</status>

如果不是:

<status>false</status>

解析器类是:

private static final String ns = null;

public Boolean parse(InputStream in) throws XmlPullParserException, IOException {
try {
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(in, null);
parser.nextTag();
return readFeed(parser);
} finally {
in.close();
}
}
private Boolean readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {

parser.require(XmlPullParser.START_TAG, ns, "verify_account");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("status")) {
return readSta(parser);
} else {
skip(parser);
}
}
return false;
}
private Boolean readSta(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "stats");
String name = readText(parser);
parser.require(XmlPullParser.END_TAG, ns, "stats");
if (name == "true"){
return true;
}
else {
return false;
}
}
private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
String result = "";
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.nextTag();
}
return result;
}

问题是 PareXml 类始终返回 false :|但我打印了标签的值,它是“true”我尝试在 readSta 函数第 4 行的“true”之前和之后添加空格但它不起作用:| 。看来是编码问题

我尝试了很多方法,但仍然不起作用:|

最佳答案

在你的 readSta 方法中,而不是使用:

if (name == "true"){
return true;
}

用途:

if (name.equals("true")){
return true;
}

尝试一次。

关于java - 解析 xml ...我认为这个问题。是关于编码的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17037738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com