今天xml文件的解析,发现原来getChildNodes().getLength()这个函数返回数量与实际不同
解析的时候出现
com.sun.org.apache.xerces.internal.dom.DeferredTextImpl cannot be cast to org.w3c.dom.Element
例如:
XML code
<font>
<name>那那个谁</name>
<size>22</size>
</font>
如果你使用getChildNodes会得到5个元素,分别是:
Text: 空白
Element: <name>
Text: 空白
Element: <size>
Text: 空白
所以当得到空白文本的时候,却想把它强制转化为Element对象,所以肯定会出问题
把出错的代码修改一下,在强制转化之前加一个instanceof判断,就行了
下面是修改后的代码
Java code
//得到Sort的子元素列表
NodeList childList= sort.getChildNodes();
for(int j=0;j<childList.getLength();j++){
Node child = childList.item(j);
if (child instanceof Element)
{
//code...
}
}
做记录