로그인 시스템을 만들려고합니다. 이를 위해 xml 문서에서 xml 요소 ( "username"및 "password")의 존재를 확인해야합니다. "username"과 "password"가 일치하면 true를 반환하고 그렇지 않으면 false를 반환해야합니다. 이를 위해 "for"루프를 사용하여 전체 문서를 살펴보고 "if"루프를 유효성 검사에 사용합니다. Java 및 dom 파서를 사용하고 있습니다.
xml 문서 :
<login>
<user>
<username>sunimal</username>
<password>1111</password>
</user>
<user>
<username>naveen</username>
<password>852</password>
</user>
<user>
<username>chamara</username>
<password>12345</password>
</user></login>
자바 코드 :
boolean a = false;
try {
File inputFile = new File("C:\\Users\\Kavindu\\Documents\\NetBeansProjects\\chatserver2\\xml\\userrecord2.xml");
DocumentBuilderFactory dbFactory
= DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
NodeList userList = doc.getElementsByTagName("login");
for (int i = 0; i < userList.getLength(); i++) {
Node user = userList.item(i);
Element eElement = (Element) user;
if (eElement.getElementsByTagName("username").item(i).getTextContent().equals(username) && eElement.getElementsByTagName("password").item(i).getTextContent().equals(password)) {
a = true;
} else {
a = false;
}
}
} catch (Exception ex) {
}
return a;
}
첫 번째 요소 ( "sunimal"및 "1111")를 입력하면 true를 얻을 수 있지만 다른 요소의 경우 false를 반환합니다. "for"루프와 "if"루프를 다른 방식으로 시도했지만 결과를 얻지 못했습니다. 저는 프로그래밍을 새로 시작했습니다.
여기에 해결책이 있습니다. 내 IDE에서 이것을 확인했습니다. 감사. :-)
태그의 첫 번째 요소를 얻으려면 인덱스 0을 사용해야합니다. eElement.getElementsByTagName("username").item(0)
사용자 이름과 암호가 일치하면 루프에서 벗어나야합니다.
a = 참; 단절;
그렇지 않으면 다음 반복에서 다시 false로 설정됩니다.
public boolean checkLogin(){
boolean a = false;
try {
File inputFile = new File("C:\\Users\\Kavindu\\Documents\\NetBeansProjects\\chatserver2\\xml\\userrecord2.xml");
DocumentBuilderFactory dbFactory
= DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
NodeList userList = doc.getElementsByTagName("user");
System.out.println("userlist length :: "+ userList.getLength());
for (int i = 0; i < userList.getLength(); i++) {
Node user = userList.item(i);
Element eElement = (Element) user;
if (eElement.getElementsByTagName("username").item(0).getTextContent().equals(username) && eElement.getElementsByTagName("password").item(0).getTextContent().equals(password)) {
a = true;
break;
} else {
a = false;
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return a;
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다