JSTL-XML处理

来源:互联网 发布:苏州迈科网络 公告 编辑:程序博客网 时间:2024/06/05 02:48
 

在企业级应用越来越依赖 XML 的今天, XML 格式的数据被作为信息交换的优先选择。 XML processing 标签库为程序设计者提供了基本的对 XML 格式文件的操作。在该标签库中的标签一共有 10 个,被分为了三类,分别是:

q         XML 核心标签: <x:parse> 、 <x:out> 、 <x:set> 。

q         XML 流控制标签: <x:if> 、 <x:choose> 、 <x:when> 、 <x:otherwise> 、 <x:forEach> 。

q         XML 转换标签: <x:transform> 、 <x:param> 。

由于该组标签库专注于对某一特定领域的实现,因此本书将只选择其中常见的一些标签和属性进行介绍。

9.4.1  用于解析 XML 文件的 <x:parse> 标签

<x:parse> 标签是该组标签库的核心,从其标签名就可以知道,它是作为解析 XML 文件而存在的。它的属性和描述如表 9.12 所示:

表 9.12   <x:parse> 标签属性和说明

属性

描述

doc

源 XML 的内容,该属性的内容应该为 String 类型或者 java.io.Reader 的实例,可以用 xml 属性来替代,但是不被推荐

var

将解析后的 XML 保存在该属性所指定的变量中,之后 XML processing 标签库中的其他标签若要取 XML 中的内容就可以从该变量中得到(可选)

scope

变量的作用范围(可选)

varDom

指定保存的变量为 org.w3c.dom.Document 接口类型(可选)

scopeDom

org.w3c.dom.Document 的接口类型变量作用范围(可选)

systemId

定义一个 URI ,该 URI 将被使用到 XML 文件中以接入其他资源文件(可选)

filter

该属性必须为 org.xml.sax.XMLFilter 类的一个实例,可以使用 EL 表达式传入,将对 XML 文件做过滤得到自身需要的部分(可选)

其中, var 、 scope 和 varDom 、 scopeDom 不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被 XML processing 标签库的其他标签来使用。

<x:parse> 标签单独使用的情况很少,一般会结合 XML processing 标签库中的其他标签来一起工作。下面看一个示例。

首先给出一个简单的 XML 文件,将对该 XML 文件做解析,该 XML 文件名为 SampleXml.xml 。

<?xml version="1.0" encoding="UTF-8"?>

<xml-body>

  <name>RW</name>

  <passWord>123456</passWord>

  <age>28</age>

  <books>

         <book>book1</book>

         <book>book2</book>

         <book>book3</book>

  </books>

</xml-body>

标签库的工作:

<c:import var="xmlFile" url="http://localhost:8080/booksamplejstl/SampleXml.xml"/>

<x:parse var="xmlFileValue" doc="${xmlFile}"/>

原创粉丝点击