使用scanner,NoSuchElementException从XML URL获取数据

时间:2014-10-15 05:07:53

标签: xml java.util.scanner

我正在尝试从雅虎的股票API中获取数据并将其打印出来供我的班级使用。现在,我创建了一个

的URL
String stockURL = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + ticker + "%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

其中自动收报机是用户输入的字符串(例如AAPL,GOOGL,YHOO等)。

我将URL传递给我的扫描仪,如下所示:

Scanner webReader = null;
Scanner bufferReader = null;
try {
    URL url = new URL(stockURL);
    webReader = new Scanner(url.openStream());
    bufferReader = new Scanner(url.openStream());
} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

并保存这样的信息

    String name = "";
    String highLow = "";
    boolean yes = true;
    while(bufferReader.nextLine()!=null){
        String holder = webReader.nextLine();
        if(holder.startsWith("<Name>")){
            name = holder.replaceAll("<Name>", "");
            name.replaceAll("</Name>", "");
        } else if(holder.startsWith("<YearRange>")){
            highLow = holder.replaceAll("YearRange","");
            highLow.replaceAll("</YearRange>","");
            highLow.replaceAll("- ", "and a year high of:");
            break;
        } else if(holder.startsWith("</Query>")){
            yes = false;
            break;
        }
    }

然而我在我的同时得到了一个N​​oSuchElementException(bufferReader.nextLine!= null)。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我修好了!

只需替换while循环中的条件。

while(webReader.hasNext()){...}