传智播客—XML基础(下)
今天继续讲XML,争取在下午5点前占领XML高地。一共三个主要内容:SAX解析技术,DOM4J和SCHEMA。
首先是SAX解析技术:SAX采用事件处理的方式解析XML文件。利用 SAX 解析 XML 文档,涉及两个部分:解析器和事件处理器。
解析器负责读取 XML 文档,并向事件处理器发送事件
事件处理器负责对事件做出相应,对传递的 XML 数据进行处理
1.使用SAXParserFactory创建SAX解析工厂
SAXParserFactory spf = SAXParserFactory.newInstance();
2.通过SAX解析工厂得到解析器对象
SAXParser sp = spf.newSAXParser();
3.通过解析器对象得到一个XML的读取器
XMLReader xmlReader = sp.getXMLReader();
4.设置读取器的事件处理器
xmlReader.setContentHandler(new BookParserHandler());
5.解析xml文件
xmlReader.parse("book.xml");
当在第三步拿到一个XML的读取器后,就应该向事件处理器发送事件了,这时你所写的事件处理的方法就应该实现ContentHandler的所有方法,因为ContentHandler是一个接口类,这样一来就比较麻烦了,因为我们只关系这个接口类中的三个方法:characters(参数...),startElement(参数...),endElement(参数...)。
现在我们查看API文档发现SUN公司已经为我们写好了一系列的实现类,这里我们用DefaultHandler这个实现类。在这个类里面我们重写了上面三个方法,来实现我们想要的功能。
接下来开始了dom4j。Dom4j是一个简单、灵活的开放源代码的库。dom4j使用接口和抽象基类,Dom4j的API相对要复杂一些,但它提供了更好的灵活性。Dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。使用Dom4j开发, 需要下载dom4j相应的jar文件。
DOM4j中,获得Document对象的方式有三种:
1.读取XML文件,获得document对象:
SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
2.解析XML形式的文本,得到document对象
String text = "<members></members>";
Document document = DocumentHelper.parseTex
相关文档:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
xml学习:http://www.w3school.com.cn/x.asp ......
sql2005中一个xml聚合的例子 收藏
该问题来自论坛提问,演示SQL代码如下
--建立测试环境
set nocount on
create table test(ID varchar(20),NAME varchar(20))
insert into test select '1','aaa'
insert into test select '1','bbb'
insert into test select '1','ccc'
insert into test select '2','ddd'
inser ......
XML的四种解析器原理及性能比较 ......