Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 哪一行代码使我的RSS阅读器只能读取底部标记?_Java_Android_Xml - Fatal编程技术网

Java 哪一行代码使我的RSS阅读器只能读取底部标记?

Java 哪一行代码使我的RSS阅读器只能读取底部标记?,java,android,xml,Java,Android,Xml,我创建了XML解析RSS阅读器,但它只读取最后3个节点(即标题、链接和描述)。我想知道这是由哪行代码实现的(我指的是读取最后的节点)。如果我想从中读取前三个节点,我实际应该做什么? 我是一个裸体。有人能把答案作为代码发布吗 public class HandleXML { private String title = "title"; private String link = "link"; private String description = "description"; private

我创建了XML解析RSS阅读器,但它只读取最后3个节点(即标题、链接和描述)。我想知道这是由哪行代码实现的(我指的是读取最后的节点)。如果我想从中读取前三个节点,我实际应该做什么? 我是一个裸体。有人能把答案作为代码发布吗

public class HandleXML {
private String title = "title";
private String link = "link";
private String description = "description";
private String title1 = "title";
private String link1 = "link";
private String description1 = "description";
private String urlString = null;
private XmlPullParserFactory xmlFactoryObject;
public volatile boolean parsingComplete = true;

public HandleXML(String url){
    this.urlString = url;
}

public String getTitle(){
    return title;
}

public String getLink(){
    return link;
}

public String getDescription(){
    return description;
}

public void parseXMLAndStoreIt(XmlPullParser myParser) {
    int event;
    String text=null;

    try {
        event = myParser.getEventType();

        while (event != XmlPullParser.END_DOCUMENT) {
            String name=myParser.getName();

            switch (event){
                case XmlPullParser.START_TAG:
                    break;

                case XmlPullParser.TEXT:
                    text = myParser.getText();
                    break;

                case XmlPullParser.END_TAG:

                    if(name.equals("title")){
                        title = text;

                    }

                    else if(name.equals("link")){
                        link = text;

                    }

                    else if(name.equals("description")){
                        description = text;

                    }

                    else{
                    }

                    break;
            }

            event = myParser.next();
        }

        parsingComplete = false;
    }

    catch (Exception e) {
        e.printStackTrace();
    }
}

public void fetchXML(){
    Thread thread = new Thread(new Runnable(){
        @Override
        public void run() {

            try {
                URL url = new URL(urlString);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();

                conn.setReadTimeout(10000 /* milliseconds */);
                conn.setConnectTimeout(15000 /* milliseconds */);
                conn.setRequestMethod("GET");
                conn.setDoInput(true);

                // Starts the query
                conn.connect();
                InputStream stream = conn.getInputStream();

                xmlFactoryObject = XmlPullParserFactory.newInstance();
                XmlPullParser myparser = xmlFactoryObject.newPullParser();

                myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
                myparser.setInput(stream, null);

                parseXMLAndStoreIt(myparser);
                stream.close();
            }

            catch (Exception e) {
            }
        }
    });
    thread.start();
}
}

这部分代码负责读取上面提到的元素

if(name.equals("title")){
    title = text;
}
else if(name.equals("link")){
    link = text;
}
else if(name.equals("description")){
    description = text;
}
else{
 // Write similar conditions for the other tags that you want to parse.
}

这部分代码负责读取上面提到的元素

if(name.equals("title")){
    title = text;
}
else if(name.equals("link")){
    link = text;
}
else if(name.equals("description")){
    description = text;
}
else{
 // Write similar conditions for the other tags that you want to parse.
}

您正在使用while循环来处理文档。 在该循环中,代码读取所有标题、链接和描述节点。 问题是它每次都覆盖变量,因此您得到的是最后一个标题、链接和描述

如果您只想阅读firs标题、链接和描述,可以执行以下操作:

初始化变量,如下所示:

private String title;
private String link;
private String description;
比:

编辑(试试这个,警告:我还没有测试过)


您正在使用while循环来处理文档。 在该循环中,代码读取所有标题、链接和描述节点。 问题是它每次都覆盖变量,因此您得到的是最后一个标题、链接和描述

如果您只想阅读firs标题、链接和描述,可以执行以下操作:

初始化变量,如下所示:

private String title;
private String link;
private String description;
比:

编辑(试试这个,警告:我还没有测试过)


我怎样才能改变它?就像我想展示第一个节点一样,你能编辑答案吗?你计划提取哪些元素,我们可以在这里帮助你,但请展示你到目前为止得到了什么。这对你有帮助。我怎样才能改变它?就像我想展示第一个节点一样,你能编辑答案吗?你计划提取哪些元素,我们可以在这里帮助你,但请展示你到目前为止得到了什么。它会帮助你。你能编辑或发布完整的代码吗?因为我没有得到你,所以我应该删除while循环?或者其他什么你能编辑或发布完整的代码吗?因为我没有得到你所以我应该删除while循环?还是别的什么