首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android -空对象引用,正在解析RSS文件

Android -空对象引用,正在解析RSS文件
EN

Stack Overflow用户
提问于 2016-08-17 16:54:38
回答 1查看 1.3K关注 0票数 0

有人能帮我理解这个错误吗?我尝试解析xml文件并获取其内容。但每次我收到这个错误。有很多人都有类似的错误,但还没有帮助到我。

代码语言:javascript
运行
复制
08-17 10:34:18.589 25213-25567/com.example.entwicklung1.designtestapp E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
                                                                                    Process: com.example.entwicklung1.designtestapp, PID: 25213
                                                                                    java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                                        at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                                        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                                        at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                                        at java.lang.Thread.run(Thread.java:818)
                                                                                     Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'org.w3c.dom.NodeList org.w3c.dom.Node.getChildNodes()' on a null object reference
                                                                                        at com.example.entwicklung1.designtestapp.ReadRssZander.ProcessXml(ReadRssZander.java:66)
                                                                                        at com.example.entwicklung1.designtestapp.ReadRssZander.doInBackground(ReadRssZander.java:58)
                                                                                        at com.example.entwicklung1.designtestapp.ReadRssZander.doInBackground(ReadRssZander.java:29)
                                                                                        at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                                        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                                                                                        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                                        at java.lang.Thread.run(Thread.java:818)

以下是我的代码的一部分。我甚至找不到带有"item“的子项。我在这里已经得到了错误:NodeList items = channel.getChildNodes();

代码语言:javascript
运行
复制
@Override
protected Void doInBackground(Void... params) {
    ProcessXml(Getdata());
    return null;
}

private void ProcessXml(Document data) {
    if(data!=null) {
        Element root = data.getDocumentElement();
        Node channel = root.getChildNodes().item(1);
        NodeList items = channel.getChildNodes();

        //for(int i=0;i<items.getLength();i++){
        //    Node currentchild = items.item(i);
        //    Log.d("textcontent",currentchild.getTextContent());
           // if(currentchild.getNodeName().equalsIgnoreCase("item")){
           //     NodeList itemchilds=currentchild.getChildNodes();
           //     for(int j=0;j<itemchilds.getLength();j++){
           //         Node current= itemchilds.item(j);
           //         Log.d("textcontent",current.getTextContent());
           //     }
           // }
        //}
    }
}

public Document Getdata(){
    try {
        url = new URL(adress);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        InputStream inputStrem = connection.getInputStream();
        DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
        DocumentBuilder builder=builderFactory.newDocumentBuilder();
        Document xmlDoc =builder.parse(inputStrem);
        return xmlDoc;
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

这是XML文件,我尝试解析:Link

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-17 17:20:38

我找到了解决我的问题的办法。我找错东西了。

我需要的正确项目是Node channel = root.getChildNodes().item(0);而不是Node channel = root.getChildNodes().item(1);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38992120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档