0
저는 xml에서 간단한 사용자 이름과 암호를 읽으려는 많은 다른 자습서를 시도해 왔습니다. 임무 지명. 내가sd Card의 Android XMLPullParser ... 맞지 않는 것이 있습니까?
public void UserCheck() throws FileNotFoundException, IOException{
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
//file ref
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"/UserDetails.xml");
//inputstream
FileInputStream fis = new FileInputStream(file.getPath());
//set the input
xpp.setInput(new InputStreamReader(fis));
//Tutorial didnt use the eventType
int eventType = xpp.getEventType();
String nodeName = xpp.getName();
if (nodeName=="Username"){
}
} catch (XmlPullParserException ex) {
Logger.getLogger(Comp4Task2.class.getName()).log(Level.SEVERE, null, ex);
}
내가 볼 수있는 주요 문제를 이용하고있다
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<UserDetails>
<Username User="Bryan" Pass="Boo" />
</UserDetails>
내 연결 코드는 xpp.getName가 항상 null을 반환합니다. 내가 뭘 잘못하고 있는지 모르겠다. 봐 주셔서 감사합니다. 나는
public boolean UserCheck(String Username, String Password) throws FileNotFoundException, IOException{
try {
String data;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"/UserDetails.xml");
FileInputStream fis = new FileInputStream(file.getPath());
InputStreamReader isr = new InputStreamReader(fis);
/////////////////////
char[] InputBuffer = new char[fis.available()];
isr.read(InputBuffer);
data = new String(InputBuffer);
isr.close();
fis.close();
XmlPullParser xpp = null;
xpp = factory.newPullParser();
xpp.setInput(new StringReader(data));
///////////////////////////////////////
int eventType = 0;
eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT){
if (eventType == XmlPullParser.START_DOCUMENT) {
System.out.println("Start document");
}
else if (eventType == XmlPullParser.START_TAG) {
String tagName = xpp.getName();
if (tagName.contentEquals("User"))
{
String StoredUsername = xpp.getAttributeValue(null,"Username");
String StoredPassword = xpp.getAttributeValue(null, "Password");
if (Username.equals(StoredUsername)){
if(Password.equals(StoredPassword)){
return true;
}
}
}
}
else if (eventType == XmlPullParser.END_TAG) {
System.out.println("End tag "+xpp.getName());
}
eventType = xpp.next();
}
} catch (XmlPullParserException ex) {
Logger.getLogger(Comp4Task2.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
나는 내가 생성을위한 코드를 추가 할 생각 ... 여기에 내가
how to parse xml file from Sdcard in Android
Read/write to external XML file in Android