Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 如何使用xAgent读取RSS提要?_Java_Xml_Rss_Xpages - Fatal编程技术网

Java 如何使用xAgent读取RSS提要?

Java 如何使用xAgent读取RSS提要?,java,xml,rss,xpages,Java,Xml,Rss,Xpages,我试图使用xAgent读取外部rss提要,我似乎遇到了如下所示的xml错误,我怀疑这是因为我使用bufferedReader逐行读取xml 我会犯这样的错误 “第32列第1行出错:文档末尾有额外内容” “第6561列第1行出错:开始和结束标记不匹配:项目行0和通道” 这是我试过的 <?xml version="1.0" encoding="UTF-8"?> <xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="f

我试图使用xAgent读取外部rss提要,我似乎遇到了如下所示的xml错误,我怀疑这是因为我使用bufferedReader逐行读取xml

我会犯这样的错误

  • “第32列第1行出错:文档末尾有额外内容”
  • “第6561列第1行出错:开始和结束标记不匹配:项目行0和通道”
这是我试过的

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
<xp:this.afterRenderResponse>
<![CDATA[#{javascript:

var u:java.net.URL  = new java.net.URL("http://www.xpages.info/XPagesHome.nsf/NewsFeed.xsp?format=rss");
var br:BufferedReader= new java.io.BufferedReader(new java.io.InputStreamReader(u.openStream()));
var tmp="";
while(br.readLine() != null){
    tmp+= br.readLine();
}

var externalContext = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var response = externalContext.getResponse();
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
writer.write(tmp);
writer.endDocument();
}]]>

</xp:this.afterRenderResponse>
</xp:view>

您正在使用XAgent作为代理。如果你想做得更多,我建议你使用更好的课程。最小的可能是HTTP客户机(处理所有连接问题),或者如果您的源代码是ATOM,则是ApacheAbdera类(在后台使用HTTP客户机)


您遇到的问题是:流还包含头信息,因此您的XML不是以开头的,而是使用XAgent作为代理。如果你想做得更多,我建议你使用更好的课程。最小的可能是HTTP客户机(处理所有连接问题),或者如果您的源代码是ATOM,则是ApacheAbdera类(在后台使用HTTP客户机)

您遇到的问题是:流还包含头信息,因此您的XML不以开头
public String getURL(String url) {

    System.out.println("Fetching " + url);

    if (this.httpClient == null) {
        this.initializeHTTPSession();
    }

    ResponseHandler<String> responseHandler = new BasicResponseHandler();
    HttpGet get = new HttpGet(url);

    String result = null;

    try {
        result = this.httpClient.execute(get, responseHandler);
    } catch (HttpResponseException e) {
        System.out.println(e.getMessage());
        return null;
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (UnknownHostException e) {
        result = "The host is invalid: " + url;
    } catch (IOException e) {
        e.printStackTrace();
    }

    return result;
}