用于登录的XML解析器

时间:2018-06-08 11:39:50

标签: android xml-parsing

我有点卡住了。计划是简单地读取一个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}}

会起作用,但事实并非如此。我忘记了什么?

对不起,很长的帖子。提前谢谢!

0 个答案:

没有答案