classcastexception قراءة ملف XML
-
04-10-2019 - |
سؤال
لدي ملف XML التالي:
<?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>
أحاول تحميل سمات C2 بهذه الطريقة:
Document d =
DocumentBuilderFactory.newInstance()
.newDocumentBuilder()
.parse("epxy.xml");
Element c1 = d.getDocumentElement();
Element c2 = (Element)c1.getFirstChild();
while (c2 != null) {
...
c2 = (Element)c2.getNextSibling();
}
لكني أحصل على الاستثناء java.lang.classcastexception: org.apache.xerces.dom.deferredtextimpl غير متوافق مع org.w3c.dom.elementعلى الخط
Element c2 = (Element)c1.getFirstChild();
قبل الحلقة.
أي تلميحات؟ شكرًا.
المحلول
الطفل الأول هو المسافة البيضاء بين نهاية C1 وبداية C2.
استخدام W3C DOM للسير في الشجرة ليس بالأمر السهل. إذا لم يكن عليك استخدام W3C ، أوصي DOM4J - إنه أجمل بكثير للاستخدام. على سبيل المثال ، سيتم تصفية العقد النصية من العناصر ، حتى تتمكن من الاتصال
List children = c1.elements();
أو لتقييد الاسم
List children = c1.elements("c2");
نصائح أخرى
الطفل الأول من C1 هو عقدة نص تحتوي على سطر جديد. تحتاج إلى تكرار الأطفال الذين يتخطى العقد النصية.
لا تنتمي إلى StackOverflow