传智播客—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
相关文档:
要知道从根节点一直下来的相对路径才能确定Xpath的写法。
/root/<节点1>/<节点2>//<@属性>
Xpath是功能很强大的,但是也是相对比较复杂的一门技术,最好还是到博客园上面去专门找一些专业的帖子来看一看,下面是一些简单的Xpath语法和一个实例,提供给你参考一下
<?xml version="1.0" encoding="IS ......
你知道XML文件吧?(不知道的GOOGLE去!)那你听说过在XML里书写SQL语句吗?换句话说,把你的项目里所有SQL语句存储在XML文件里,你听说过吗?你做过吗?
我头次听说是小艾告诉我的,我敢肯定他是个这方面的高手,呵呵(赞一个,到此为止!)
那给你展示一下,在XML里书写SQL语句吧
<commands>
<comman ......
1.在JSP中生成动态XML
可以使用JSP生成XML,使用CSS或者XSL转换和显示XML;
只要在静态的XML文档模板中加入Java代码和JSP标记,XML就可以有静变动,产生动态的内容,生成XML文档的方法很简单,只需要在文件中使用指令contenttype,如<%@ page contenttype="text/xml"%>;
在XML文档中同样可以使 ......
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 ......
在
SQLServer2005
中对
XML
的处理功能显然增强了很多,提供了
query(),value(),exist(),modify(),nodes()
等函数。
关于
xml
,难以理解的不是
SQLServer
提供的函数,而是对
xml
本身的理解,看似很简单的文件格式,处理起来却是非常困难的。本文只是初探一下而已。
详见
SQLServer
联机帮助:
主题
说 ......