java - ClassCastException 读取 XML 文件

标签 java xml dom classcastexception

我有以下 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 incompatible with org.w3c.dom.Element 在行中

Element c2 = (Element)c1.getFirstChild();

在循环之前。

有什么提示吗?谢谢。

最佳答案

第一个 child 是 c1 结尾和 c2 开头之间的空白。

使用 w3c DOM 遍历树并不是那么容易。如果不用w3c,我推荐dom4j - 使用起来更方便。例如,它会过滤元素中的文本节点,因此您可以调用

List children = c1.elements();

或者,按名称限制

List children = c1.elements("c2");

关于java - ClassCastException 读取 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901332/

相关文章:

javascript - 纯 javascript 中平滑的垂直选项卡式导航

python - Python 不擅长 XML?

java - 如何打开程序并检测程序何时关闭

java - 如何检查 ConcurrentLinkedQueue 是否为 GC 留下垃圾(取消引用的实例)?

c# - 将无效字符解析为 XML

Android 文件(Java 和 XML)被奇怪的 XML 取代

jquery - 如何停止将事件从父 div 传播到子 div

java - MySql Connector J JDBC 驱动程序不支持连接池吗?

java - 将 ByteArray 均匀分区为 Queue 的 ByteArray

php - 使用 PHP 将嵌套的 xml 解析为对象