1

我需要检查 RSS 提要 URL 验证。我有一个 url,现在我需要检查这个 url 是否仅用于 RSS 提要,我如何在核心 java 中检查它?请帮忙

4

3 回答 3

1

我知道那是 3 年前),但这是我的代码。使用罗马图书馆。 使用 ROME 读取联合提要

public boolean romeLibraryExample(String address) {
    boolean ok = false;
    try{
        URL url = new URL(address);
        HttpURLConnection httpcon = (HttpURLConnection)url.openConnection();
        SyndFeedInput input = new SyndFeedInput();
        SyndFeed feed = input.build(new XmlReader(url));
        ok = true;
    } catch (Exception exc){
        exc.printStackTrace();
    }
    return ok;
}
于 2016-11-16T13:53:16.953 回答
0

最好的方法是使用 XML 验证:从这里下载 XSD 文件并将其放在你的类文件后面:http: //europa.eu/rapid/conf/RSS20.xsd

您可以将 XSD 与 DOM 一起使用:


private void validate(final File file) throws SAXException, ParserConfigurationException, IOException {
    final List exceptions = new ArrayList();

    final ErrorHandler errorHandler = new ErrorHandler() {
        public void warning(SAXParseException e) throws SAXException {
            // we can forgive that!
        }

        public void error(SAXParseException e) throws SAXException {
            exceptions.add(e);
        }

        public void fatalError(SAXParseException e) throws SAXException {
            exceptions.add(e);
        }
    };

    final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(false);
    factory.setNamespaceAware(true);

    final SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
    final Schema schema = schemaFactory.newSchema(getClass().getClassLoader().getResource("Rss20.xsd"));

    factory.setSchema(schema);

    final DocumentBuilder builder = factory.newDocumentBuilder();

    builder.setErrorHandler(errorHandler);

    builder.parse(file);

    if(exceptions.size() == 0) {
        // no error
    } else {
       // Error happens!
    }
}
于 2013-10-04T09:22:19.537 回答
0

我以一种简单的方式做到了,不知道它能达到多远,但在我的情况下它是有帮助的。贝娄是我的代码片段

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(url); // url is your url for testing
doc.getDocumentElement().getNodeName().equalsIgnoreCase("rss")

而已。

于 2013-07-10T05:46:17.477 回答