Classcastexception-Fehler Lesen von XML-Datei
Ich habe die folgende xml-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<c1>
<c2 id="0001" n="CM" urlget="/at/CsM" urle="/E/login.jsp">
</c2>
<c2 id="0002" n="C2M" urlget="/a2t/CsM" urle="/E2/login.jsp">
</c2>
</c1>
Ich versuche zu laden, c2 Attribute auf diese Weise:
Document d =
DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse("epxy.xml");
Element c1 = d.getDocumentElement();
Element c2 = (Element)c1.getFirstChild();
while (c2 != null) {
...
c2 = (Element)c2.getNextSibling();
}
Aber ich bekomme die Ausnahme java.lang.Classcastexception-Fehler: org.apache.xerces.dom.DeferredTextImpl unvereinbar mit org.w3c.dom.Element
in der Zeile
Element c2 = (Element)c1.getFirstChild();
bevor die Schleife.
Irgendwelche Tipps ? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersten Kind ist das Leerzeichen zwischen dem Ende von c1 und das starten von c2.
Verwendung von w3c DOM zu gehen, der Baum ist nicht so einfach. Wenn Sie nicht über w3c benutzen, empfehle ich dom4j - es ist viel schöner zu verwenden. Zum Beispiel, es wird filter Textknoten von Elementen, so dass Sie anrufen können,
oder zu beschränken, durch Namen
Das erste Kind von c1 ist ein text-Knoten mit dem newline. Sie benötigen zum Durchlaufen der Kinder überspringen von text-Knoten.