我在 Android 环境中解析一些 XML 文件时遇到问题...启动我的 android 应用程序后,我在 JAVA 环境下进行了一些解析 XML 的测试。
所以,我写了这段代码:
private void addMeta(Node n){
String[] fields = {"src", "timestamp", "title", "kind", "ref", "crcData"};
Element e = (Element)n.getChildNodes();
//... more code
}
但是,在 Android 中使用它时会返回一个 ClassCastException。
我正在查找问题,并且(据我所知)问题如下:
Android 正在获取另一种“NodeList”(“n.getChildNodes()”返回的数据类型。Android 获取的数据类型是:org.apache.harmony.xml.dom.NodeListImpl。
所以,看到这一点,我改变了我的代码,从直接转换为执行它的方法。它的代码是:
private org.w3c.dom.Element getElements(Node n){
org.w3c.dom.NodeList nl = (org.w3c.dom.NodeList)n.getChildNodes();
return (org.w3c.dom.Element)nl;
}
然后,我将“元素 e = (Element)n.getChildNodes()”更改为“org.w3c.dom.Element e = this.getElements(n)”
但是,在“getElements”方法中,发生了一些奇怪的事情......
“nl”仍然是“org.apache.harmony.xml.dom.NodeListImpl”,所以我仍然得到一个 ClassCastException。
那么,我可能需要获得“org.w3c.dom.NodeList”而不是“org.apache ...”NodeList 吗?
谢谢大家,对不起我的英语不好......:s