3
我有一個XML文件,該文件中有一個DTD引用,就像這樣:如何根據給定的DTD文件驗證XML文件?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE something SYSTEM "something.dtd">
我使用的是DocumentBuilderFactory
:
public static Document validateXMLFile(String xmlFilePath) throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setValidating(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
builder.setErrorHandler(new ErrorHandler() {
@Override
public void error(SAXParseException exception) throws SAXException {
// do something more useful in each of these handlers
exception.printStackTrace();
}
@Override
public void fatalError(SAXParseException exception) throws SAXException {
exception.printStackTrace();
}
@Override
public void warning(SAXParseException exception) throws SAXException {
exception.printStackTrace();
}
});
Document doc = builder.parse(xmlFilePath);
return doc;
}
但現在我想驗證對XML文件一個DTD文件在用戶定義的位置,而不是相對於XML文件的路徑。
我該怎麼做?
例子:
validateXMLFile("/path/to/the/xml_file.xml", "/path/to/the/dtd_file.dtd");
可能的重複[使用Java驗證XML文件與本地DTD文件](http://stackoverflow.com/questions/1096365/validate-an-xml-file-against-local-dtd-file-with-java ) – 2013-04-21 23:30:36
http://xmlsoft.org/xmllint.html:這似乎有一種方法來接受dtd的url並驗證xml。你應該檢查它的來源。 – Jayan 2013-04-22 01:36:52