RSS フィードの URL 検証を確認する必要があります。URL があります。この URL が RSS フィード専用であることを確認する必要があります。コア Java で確認するにはどうすればよいですか? 助けてください
1946 次
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 に答える