传智播客—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
相关文档:
xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
......
今天是上课的第一天,没想到第一天就讲了那么多的东西,看了看老师的PPT,发现东西虽然多,但是都不难理解,还是比较容易的。哈哈,得益于在传智基础班的锤炼,英明的决定就是从头学起。
刚过完春节老方的话还是说的不是很流利啊(要加强普通话练习喔 ......
web.xml文件对于配置任何Java Web应用都必需的。
(1)配置Struts的ActionServlet
<servlet><!--元素来声明ActionServlet-->
<servlet-name><!--元素:用来定义Servlet的名称-->
<servlet-class><!--元素:用来指定Servlet的完整类名-->
<servlet>
<servlet-name& ......
应用JSP,XML和CSS技术实现弹出式菜单的工程框架。
综合采用JSP,JavaBean,XML,XSL,CSS,JavaScript多项技术的优点。
在JSP中使用XML文档,XML定义数据格式,在JSP中直接生成XML文件,它与JavaBean交互,JavaBean负责读取存储菜单项的文件。
XSL实现XML到HTML的转化,CSS文件负责样式单的定义,而JavaS ......
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 ......