java.lang.Classcastexception-Fehler, DeepNodeListImpl nicht gegossen werden
hier ist mein code :
public void Login() {
try{
DocumentBuilderFactory builderfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = builderfactory.newDocumentBuilder();
File path = new File("src/dataPengguna/dataPengguna.xml");
Document doc = db.parse(path);
Element pengguna = (Element) doc.getElementsByTagName("pengguna");
NodeList list = pengguna.getElementsByTagName("user");
for (int i = 0; i < list.getLength(); i++) {
Element user = (Element) list.item(i);
Node username = user.getElementsByTagName("username").item(i);
Node password = user.getElementsByTagName("password").item(i);
if(loginuser.getText().equals(username.getTextContent())
&& loginpass.getText().equals(password.getTextContent())){
JOptionPane.showMessageDialog(rootPane, "welcome");
}
}
}catch(Exception e){
e.printStackTrace();
}
}
hier ist mein xml :
<?xml version="1.0" encoding="UTF-8"?>
<pengguna>
<user>
<nama>septian</nama>
<username>septiansykes</username>
<password>1234</password>
<status>belumpinjam</status>
</user>
<user>
<nama>koko</nama>
<username>kokosan</username>
<password>12er</password>
<status>belumpinjam</status>
</user>
<user>
<nama>tamrin</nama>
<username>tamrincs</username>
<password>gt234</password>
<status>belumpinjam</status>
</user>
</pengguna>
und hier ist mein Fehler :
java.lang.ClassCastException:com.sun.org.apache.xerces.internal.dom.DeepNodeListImpl cannot be cast to org.w3c.dom.Element
ich versuche mir das element in der xml-Datei, ich will überprüfen Sie das element Benutzername und Kennwort, aber es gibt eine Fehlermeldung über die Besetzung Klasse, es scheint schwierig für mich,... danke schon
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist das problem:
getElementsByTagName
zurück nicht ein einzelnes element, es gibt mehrere Elemente. Sie wollen wahrscheinlich etwas wie:EDIT: Später, Sie habe einen Fehler hier:
Sollte dies:
Sind Sie bereits innerhalb des
user
element - so dass Sie immer wollen die erstenusername
undpassword
Elemente innerhalb dieses Elements. Sonst bist du gefragt, für den zweitenusername
element innerhalb des zweitenuser
element, die Dritteusername
element in der Drittenuser
element etc. Die Nummerierung relevant ist, um das element, das Sie in sind, nicht einige Globale zählen.getElementByTagName()
gibt eineNodeList
und Sie versuchen zu casten, um eineElement
. Diese Zeile ist falsch und wird Ihnen dieClassCastException
: