1

RSS フィードの URL 検証を確認する必要があります。URL があります。この URL が RSS フィード専用であることを確認する必要があります。コア Java で確認するにはどうすればよいですか? 助けてください

4

3 に答える 3

0

そのための最良の方法は、XML 検証を使用することです。ここから XSD ファイルをダウンロードし、クラス ファイルの後ろに置いてください: http://europa.eu/rapid/conf/RSS20.xsd

DOM で XSD を使用できます。


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 に答える