摘要
本文记述了如何使用Java 8
API 解析但不验证、按照XML文件头的DOCTYPE
声明验证、使用本地文件验证XML的方法。本文不涉及如何读取、修改XML节点,以及创建XML文档的内容。
解析但不验证
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class XMLParser {
public static void main(String[] args) {
try {
String xmlToParse = "myDocument.xml";
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
// 默认DocumentBuilderFactory不创建
// 启用验证功能的DocumentBuilder
DocumentBuilder db = dbf.newDocumentBuilder();
Document myDoc = db.parse(xmlToParse);
} catch (ParseConfigurationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
}
使用XML文件头部声明的DOCTYPE验证
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import o