使用Dom解析xml出现的异常

Exceptioninthread"main"java.lang.ClassCastException:com.sun.org.apache.xerces.interna... Exception in thread "main" java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredTextImpl cannot be cast to。org.w3c.dom.Element

代码:
NodeList nl = doc.getElementsByTagName("Brand");
for (int i = 0; i < nl.getLength(); i++) {
Element brandNode = (Element) nl.item(i);
NodeList childList = brandNode.getChildNodes();
for (int j = 0; j < childList.getLength(); j++) {
Element typeElement = (Element) childList.item(j); //Exception
String typeName = typeElement.getAttribute("name");
System.out.println("手机:"+brandName+typeName);
}
}
xml code:
<?xml version="1.0" encoding="utf-8"?>
<PhoneInfo>
<Brand name="苹果">
<Type name="IPhone4"/>
<Type name="IPhone5"/>
</Brand>
<Brand name="联想">
<Type name="A60"/>
</Brand>
</PhoneInfo>
请问这是什么原因造成的?
展开
 我来答
百度网友845f74e61
推荐于2017-11-25 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1622万
展开全部
从你的代码上看不出什么来。
Element typeElement = (Element) childList.item(j); //Exception
错误的原因是 com.sun.org.apache.xerces.internal.dom.DeferredTextImpl 不能转成
org.w3c.dom.Element

你看一下你引用的类吗,估计是同名的你引错了。导致强转类型时出错。
更多追问追答
追问
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
我引用的类就这几个,你看有问题吗?
追答
这么看是没有问题。
提示中的这个
com.sun.org.apache.xerces.internal.dom.DeferredTextImpl
是什么造成的?
从这里找一下原因吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式