我有点卡住了。计划是简单地读取一个xml文件(看起来像这样:):
class StackOverflowXmlParser {
private final String ns = null;
public List parse() throws XmlPullParserException, IOException {
FileInputStream filestream = null;
try {
InputStream in;
File root = Environment.getExternalStorageDirectory();
File file = new File(root, "logindata.xml");
filestream = new FileInputStream(file);
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(filestream, null);
parser.nextTag();
return readFeed(parser);
} finally {
filestream.close();
}
}
private List readFeed(XmlPullParser parser) throws XmlPullParserException, IOException {
List entries = new ArrayList();
parser.require(XmlPullParser.START_TAG, ns, "User");
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("Username")) {
entries.add(readEntry(parser));
}
}
return entries;
}
class Entry {
public String Username;
public String Password;
Entry() {
this.Username = Username;
this.Password = Password;
}
}
private com.example.XXXXXX.serviceapp.StackOverflowXmlParser.Entry readEntry(XmlPullParser parser) throws XmlPullParserException, IOException {
parser.require(XmlPullParser.START_TAG, ns, "Username");
String Username = null;
String Password = null;
Username = readUsername(parser);
while (parser.next() != XmlPullParser.END_TAG) {
if (parser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = parser.getName();
if (name.equals("Username")) {
} else if (name.equals("Password")) {
Password = readPassword(parser);
}
}
return new com.example.XXXXX.serviceapp.StackOverflowXmlParser.Entry();
}
private String readUsername(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "Username");
String Username = readText(parser);
parser.require(XmlPullParser.END_TAG, ns, "Username");
return Username;
}
private String readPassword(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "Password");
String Password = readText(parser);
parser.require(XmlPullParser.END_TAG, ns, "Password");
return Password;
}
private String readText(XmlPullParser parser) throws IOException, XmlPullParserException {
String result = "";
if (parser.next() == XmlPullParser.TEXT) {
result = parser.getText();
parser.nextTag();
}
return result;
if (etusername.getText().toString().equals(getString(readUsername).toString()) && etpassword.getText().toString().equals(getString(readPassword).toString()))
并将该内容用于我的登录活动。 (用户在EditText中键入用户名和密码以便能够登录...)
我已经有了XML Parser部分:
现在我只想检查两个EditText中的内容是否与xml文件中的内容相同。 我想到这样的事情:
{{1}}
会起作用,但事实并非如此。我忘记了什么?
对不起,很长的帖子。提前谢谢!