xmlファイルを読み込もうとしていますが、java.lang.ClassCastException:org.apache.harmony.xml.dom.ElementImplをキャストできませんandroid.renderscript.ElementAndroid XML:要素をノードにキャストできません
要素にnNodeをキャストできないのはなぜですか?
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import android.renderscript.Element;
import android.util.Log;
class XMLParser
{
public void read(File f)
{
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(f);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("staff");
Log.i("xml", "xml: start");
Log.i("xml", "xml: root = "+ doc.getDocumentElement().getNodeName());
for (int temp = 0; temp < nList.getLength(); temp++)
{
Node nNode = nList.item(temp);
//Element eElement = (Element) nList.item(temp);
if(nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element eElement = (Element) nNode;
Log.i("xml", "xml: photo "+ getTagValue("firstname", eElement));
}
}
} catch (Exception e) {
Log.i("xml", "xml: doet niet " + e.toString());
}
}
private static String getTagValue(String sTag, Element eElement)
{
NodeList nlList = ((Document) eElement).getElementsByTagName(sTag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
}
XMLファイル:
<?xml version="1.0" encoding="UTF-8"?>
<company>
<staff>
<firstname>yong</firstname>
<lastname>mook kim</lastname>
<nickname>mkyong</nickname>
<salary>100000</salary>
</staff>
<staff>
<firstname>low</firstname>
<lastname>yin fong</lastname>
<nickname>fong fong</nickname>
<salary>200000</salary>
</staff>
</company>
は交換してください:インポートandroid.renderscript.Elementを; by:import org.w3c.dom.Element;これを変更することは私のために働いた。 –