案例3-5 使用XML及XSTL文档存储及显示数据
新建一个项目,项目名称为“P35_XML”,在该项目中新建一个XML文件,可以选择如图3-27所示的命令选择依据模版来创建一个新文件。
此时系统自动生成的代码如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xml-body>
</xml-body>
可以看到最基本的XML文档的格式,注意在页面中的第一行声明了XML对应版本,以及所使用的编码对应的字符集。

图3-27 依据模版来新建一个XML文件
我们在对应的文档中录入所需要存储的数据信息,可以看到在该页面中方便地反映了数据之间的对应关系以及层次结构。对应代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<classmates>
<student>
<sid>1</sid>
<sname>张桂元</sname>
<gre>1700</gre>
<toefl>630</toefl>
<tse>120</tse>
</student>
<student>
<sid>2</sid>
<sname>贾燕枫</sname>
<gre>1800</gre>
<toefl>599</toefl>
<tse>110</tse>
</student>
<student>
<sid>3</sid>
<sname>张宇翔</sname>
<gre>1880</gre>
<toefl>700</toefl>
<tse>130</tse>
</student>
<student>
<sid>4</sid>
<sname>张大牛</sname>
<gre>1600</gre>
<toefl>660</toefl>
<tse>110</tse>
</student>
</classmates>
单击Eclipse中编辑窗格下方的Grid选项卡,也可以进入网格状态进行XML文档的编辑和修改。对应的效果如图3-28所示。

图3-28 网格编辑状态
如果在浏览器窗口中直接打开该页面,对应的显示效果如图3-29所示。
从图3-29中可以看到,在浏览器中清晰地反映出了对应数据的树型结构。因此可以将XML文档中所存储的数据看作一个可以操作的树,开发人员可以根据需要对这棵树进行遍历、修改以达到对数据访问的目的。
从上面的例子中可以了解到:由于在XML中可以进行自定义标记,因此XML的优势之一是它允许各个组织、个人建立适合自己需要的标记符号。这一特征使得XML可以在电子商务、政府文档、司法、出版、保险机构、厂商和中介组织信息交换等领域中提供各具特色的独立解决方案。XML的最大优点就在于它的数据存储格式不受显示格式的制约。
XML是一种程序之间交换原始数据的简单而标准的方法。它的成功并不在于它容易被人们书写和阅读,更重要的是,它从根本上解决了不同应用系统之间的通用信息交换方式。下面所示即为在本书第2章的案例中所使用的一个典型Web应用配置文件的格式。

图3-29 浏览器中显示XML文档的效果
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!—设置对应Servlet对应的类型-->
<servlet>
<servlet-name>ms1</servlet-name>
<servlet-class>classmate.LoginAction</servlet-class>
</servlet>
<!—设置请求对应相应的Servlet名称-->
<servlet-mapping>
<servlet-name>ms1</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<!—设置默认欢迎页面,这里为请求名称 -->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
可以看到在对应的配置文件中,根结点为<web-app>,其中包含了三个子结点,分别是<servlet>、<servlet-mapping>及<welcome-file-list>,其中每个子结点又包括了各自的子节点。显然该文件占用的是纯文本文件的存储空间,但是可以清晰地表达出数据的层次结构。







