Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ClassCastException。XML解析_Java_Android_Xml_Xml Parsing - Fatal编程技术网

Java ClassCastException。XML解析

Java ClassCastException。XML解析,java,android,xml,xml-parsing,Java,Android,Xml,Xml Parsing,我已经浪费了两个小时来解析XML,现在我很惊慌。希望你们能帮助我 我有这样一个XML文件: <document src="xmls/sections/master/37_11.xml"> <name>Somename</name> <list show="grid"> <filter> <option id="1">A</option> <option id="2"&

我已经浪费了两个小时来解析XML,现在我很惊慌。希望你们能帮助我

我有这样一个XML文件:

<document src="xmls/sections/master/37_11.xml">
<name>Somename</name>
<list show="grid">
    <filter>
        <option id="1">A</option>
        <option id="2">B</option>
        <option id="3">C</option>
        <option id="4">D</option>
        <option id="5">E</option>
        <option id="6">F</option>
    </filter>
    <item id="3" detail="true">
        <filter>
            <value id="1">A</value>
        </filter>
        <logo src="media/img/" alt=""></logo>
        <name>this is a name</name>
        <description>content</description>
        <icons></icons>
    </item>
    <item id="3" detail="true">
        <filter>
           <value id="1">A</value>
        </filter>
        <logo src="media/img/" alt=""></logo>
        <name>this is a name</name>
        <description>content</description>
        <icons></icons>
    </item>
</list>
</document>
你们能帮帮我吗?我不明白为什么它会崩溃


非常感谢。

从我找到的文档中,TextImpl只实现节点接口,而不是元素接口。所以这里的代码是:

Node fillList = fillsList.item(k);
Element elementList = (Element) fillList;

当fillList的类型为TextImpl时,将失败。请注意,这发生在两个if测试之间。

这就是我如何让您的代码实现您想要的:

for (int k=0; k<fillsList.getLength();k++){//donem voltes als fills de list.
    Node fillList = fillsList.item(k);
    if (fillList instanceof Element) {
        Element elementList = (Element) fillList;
        if(elementList.getNodeType() == Element.ELEMENT_NODE) {
            if (elementList.getNodeName().equals("filter")){
               System.out.println("Filter!!!");
            } else if (elementList.getNodeName().equals("option")){
               System.out.println("item!!!");
            }
        }
    }
}

@你读过密码了吗?答案已经实现了。那么这一定不是问题。试着检查一下你的进口。谢谢,这对我帮助很大。
Node fillList = fillsList.item(k);
Element elementList = (Element) fillList;
for (int k=0; k<fillsList.getLength();k++){//donem voltes als fills de list.
    Node fillList = fillsList.item(k);
    if (fillList instanceof Element) {
        Element elementList = (Element) fillList;
        if(elementList.getNodeType() == Element.ELEMENT_NODE) {
            if (elementList.getNodeName().equals("filter")){
               System.out.println("Filter!!!");
            } else if (elementList.getNodeName().equals("option")){
               System.out.println("item!!!");
            }
        }
    }
}