XML 软件包支持的 API:
用于 XML 的简单 API(SAX)
文档对象模型 (DOM)
定义用于说明 DOM 重要区域的 API
构建于 DOM 顶层的 API
一:DOM:
使用 DOM 解析 XML 文档
获得一个新 DocumentBuilderFactory 实例
使用 DocumentBuilderFactory 构建 DocumentBuilder
使用 DocumentBuilder的 parse( ) 方法解析文件
将已解析的文档存储在 Document 对象中
使用 getElementsByTagName( ) 方法获得元素
二:SAX:
SAX 应用包括:
应用程序
创建解析器
创建文档处理程序
解析器
将重要事件通知给文档处理程序
文档处理程序
处理通知
用于 XML 解析的 Java API
javax.xml.parsers包
易于安装且快速
更具一致性
使用工厂设计模式创建解析器
使用 SAX 解析 XML 文档的步骤:
创建 SAXParserFactory 的实例
创建 SAXParser 的实例
创建 SAXParserHandler 类
使用 parse() 方法解析 XML 文档
使用 Transformer 类写入输出结果
转换步骤:
创建文档对象
创建 TransformerFactory的实例
使用 TransformerFactory 创建 Transformer的实例
使用 transform()方法将源树处理至输出结果中
将 XML 数据插入数据库的步骤:
使用 Class.forName() 方法加载缺省驱动器
使用 DriverManager 对象的 getConnection() 方法建立数据库连接
使用 Connection 对象创建 Statement 对象
将已解析的 XML 文档放在 Document 对象中
使用 getElementsByTagName() 方法检索其元素
使用 Insert 语句将数据插入数据库
Document doc = null;
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(new File(filename));
NodeList n2 = doc.getElementsByTagNameNS(addr, "*");
for(int i = 0; i < n2.getLength(); i++) {
Node n = n2.item(i);
System.out.println(n.getNodeName());
}
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse("movies.xml", new SAXParserHandler());