html 文件头 dtd,Java HTML/XML - 如何报告缺少的DTD文件

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.ErrorHandler;

import org.xml.sax.InputSource;

import org.xml.sax.SAXException;

import org.xml.sax.SAXParseException;

import org.xml.sax.XMLReader;

public class Main {

// validate using DOM (DTD as defined in the XML)

public static boolean validateWithDTDUsingDOM(String xml) throws Exception {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

factory.setValidating(true);

factory.setNamespaceAware(true);

DocumentBuilder builder = factory.newDocumentBuilder();

builder.setErrorHandler(new ErrorHandler() {

public void warning(SAXParseException e) throws SAXException {

System.out.println("WARNING : " + e.getMessage()); // do nothing

}

public void error(SAXParseException e) throws SAXException {

System.out.println("ERROR : " + e.getMessage());

throw e;

}

public void fatalError(SAXParseException e) throws SAXException {

System.out.println("FATAL : " + e.getMessage());

throw e;

}

});

builder.parse(new InputSource(xml));

return true;

}

// validate using SAX (DTD as defined in the XML)

public static boolean validateWithDTDUsingSAX(String xml) throws Exception {

SAXParserFactory factory = SAXParserFactory.newInstance();

factory.setValidating(true);

factory.setNamespaceAware(true);

SAXParser parser = factory.newSAXParser();

XMLReader reader = parser.getXMLReader();

reader.setErrorHandler(new ErrorHandler() {

public void warning(SAXParseException e) throws SAXException {

System.out.println("WARNING : " + e.getMessage()); // do nothing

}

public void error(SAXParseException e) throws SAXException {

System.out.println("ERROR : " + e.getMessage());

throw e;

}

public void fatalError(SAXParseException e) throws SAXException {

System.out.println("FATAL : " + e.getMessage());

throw e;

}

});

reader.parse(new InputSource(xml));

return true;

}

public static void main(String args[]) throws Exception {

System.out.println(validateWithDTDUsingDOM("c:/temp/howto.xml"));

System.out.println(validateWithDTDUsingSAX("c:/temp/howto.xml"));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值