推荐博客:http://blog.sina.com.cn/s/blog_4f925fc30101820u.html

XML标签库

JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容。

1 XML核心标签库

1.<x:parse>标签

<x:parse/>标签用来解析指定的xml文件。

【语法1】:

<x:parse doc=”xmlDocument”

{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}

systemId=”systemId”

filter=”filter”

/>

【语法2】:

<x:parse

{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}

systemId=”systemId”

filter=”filter”

>

xmlDocument

</x:parse>

【参数说明】:见表9-20。

表9-20 <x:parse>标签属性说明

属性名

说明

EL

类型

必须

默认值

doc

指定解析的xml文件

String/Reader

var

存储解析后的xml文件

String

scope

指定var的JSP范围

String

page

varDom

以(org.w3c.dom.Doucemet)的形式存储解析的xml文件

String

scopeDom

指定varDom的JSP范围

String

page

systemId

xml文件的url

String

filter

解析xml文件的过滤器

Org.xml.sax.Filter

提示:doc指定解析的xml文件并不是指定xml文件的路径,而是同<c:import>共同使用,由<c:import>加载并存储,然后使用<x:parse>解析。

例如:如果解析person.xml文件需要通过如下代码实现对xml文件的解析。

<c:import var="docString" url="person.xml"/><!--引入person.xml文件-->

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

<c:import>语句用来导入或存储文件到JSP。如果不使用var来存储,xml文件将显式的出现在JSP文件中。

<x:parse>标签只用来解析xml文件,并不显示xml文件中的内容,如果想得到xml的节点元素或值需要使用<x:out>元素来实现。

2.<x:out>标签

<x:out>标签主要用来输出xml的信息。

【语法】:

<x:out select=”XpathExperssion”[excapeXml=”true|false”]>

【参数说明】:见表9-21。

表9-21 <x:out>标签属性说明

属性名

说明

EL

类型

必须

默认值

select

指定使用的XPath语句

String

escapeXml

是否转换特殊字符。如<等

boolean

true

提示:使用XPath语句需要用到xalan.jar支持包,可以从示例程序的lib中获取,获得直接从myEclipse中可以找到。

【示例代码】:

3.<x:set>标签

<x:set>标签用于将从xml文件节点解析的内容存储到JSP属性范围中。

【语法】:

<x:set select=”XPathExperssion” var=”name” scope=”page|request|session|application”>

【参数说明】:

(1)select通过指定的XPath表达式语句获取节点的值。

(2)var指定用于存储值的变量名。

(3)指定var的JSP属性范围。

2 XML流程控制

使用xml标签库的流程控制标签可以迭代处理xml文件的内容,流程控制可以分为以下两个方面的内容:

(1)条件判断。

(2)循环功能。

1.<x:if>

<x:if>主要用于条件判断。

【语法1】:未含有本体内容。

<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]/>

【语法2】:含有本体内容。

<x:if select=”XPathExperssion” var=”name”[scope=”page|request|session|application”]

>

本体内容

</x:if>

语法1只把根据条件表达式得到的结果的存储在JSP范围中,语法2根据<x:if>标签根据条件表达式的结果决定是否执行本体内的代码。

【参数说明】:

(1)select用来指定使用的XpathExperssion表达式。

(2)var设定标量名用来存储表达式的结果。

(3)scope指定var存储的JSP属性范围。

2.<x:choose>、<x:when>和<x:otherwise>标签

同核心标签库的<c:choose>、<c:when>和<c:otherwise>标签作用相似,只是使用的条件表达式不同。

<x;choose>是主标签,<x:when>和<x:otherwise>放在<x:choose>标签体内共同使用。

【语法】:

<x:choose>

<x:when>

<x:when>

<x:otherwise>

</x:choose>

其中只有<x:when>有属性。

【语法】:

<x:when select=”XPathExperssion”>

3.<x:forEach>标签

<x;forEach>标签实现了对xml文档的遍历。

【语法】:

<x:forEach select=”XPathExperssion”[var=”name”][varStartus=”StartusName”]

[begin=”begin”][end=”end”][step=”step”]

>

//标签主体

</x:forEach>

【参数说明】:见表9-22。

表9-22 <x:forEach>标签属性说明

属性名

说明

EL

类型

必须

默认值

select

指定使用的XPath语句

String

var

用于存储表达式的结果

String

varStatus

用来存放循环到的变量的相关信息

String

begin

循环的起始位置

int

end

循环的终止位置

int

3 xml的文件转换

<x:transform>和<x:param>能轻易使用XSLT样式包装xml文件,成为另一种显示方式。

1.<x:transform>标签

使用该标签可以轻松的实现xml到XSLT的转化。

【语法1】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]

[result=”result”]

[var=”name”]

[scope=”scopeName”]

[xsltSystemId=”xsltsystemid”]/>

【语法2】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]

[result=”result”]

[var=”name”]

[scope=”scopeName”]

[xsltSystemId=”xsltsystemid”]

>

<x:param/>

</x:transform>

【语法3】:

<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]

[result=”result”]

[var=”name”]

[scope=”scopeName”]

[xsltSystemId=”xsltsystemid”]

>

Xml文件内容

<x:param/>

</x:transform>

【参数说明】:见表9-23。

表9-23 <x:transform>标签属性说明

属性名

说明

EL

类型

必须

默认值

doc

指定xml文件来源

String

xslt

转化xml的样式模板

String

docSystemId

xml文件的URI

String

xsltSystemId

xslt文件的URI

String

result

用来存储转换后的结果对象

java.xml.transform

var

以org.w3c.dom.Documet类型存储转换后的结果

String

scope

var的属性范围

String

2.<x:param>标签

该标签用来为<x:transform>标签转换参数。

【语法1】:

<x:param name=”name” value=”value”/>

【语法2】:

<x:param name=”name” value=”value”

>

Value

</x:param>

【参数说明】:

(1)name指定参数的名称。

(2)value指定参数值。

JSTL XML标签库 使用的更多相关文章

  1. JSP标准标签库(JSTL)--XML标签库 x

    ³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理.  XML标 ...

  2. 小峰servlet/jsp(7)jstl国际化标签库、sql标签库等

    一.jstl国际化标签库: fmt:setLocale 设定用户所在的区域: fmt:formatDate   对日期进行格式化 fmt:requestEncoding 设置所有的请求编码; fmt: ...

  3. (5)JSTL的xml标签库

    Jstl的XML标签库 JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容. <%@ taglib uri="h ...

  4. JSTL函数标签库 fn标签

    JSTL函数标签库 fn标签 在使用jstl的函数标签库之前需要在页面中引入: <%@ taglib prefix="fn" uri="http://java.su ...

  5. Java Servlet(十):JSTL核心标签库

    JSTL全名称:JaveServer Pages Standard Tag Library.JSTL是由JCP(Java Community Process)所定制的标准规范,它主要提供给Java W ...

  6. JSTL标准标签库

    有时使用EL和标准动作达不到目的,于是就引入定制标记. 对于JSP页面创作人员来说,定制标记使用起来比脚本要容易一些.不过对于JAVA程序员来说,简历定制标记处理器反而更困难.幸运的是,已经有了一个标 ...

  7. EL表达式和JSTL核心标签库

    1 EL表达式 1.1 EL的概述 EL,全名为Expression Language. 主要作用: ①EL表达式主要用于替换jsp页面中的脚本表达式,以便于从各种类型的web域中检索java对象(某 ...

  8. ⑤早起的鸟儿有虫吃-JSTL核心标签库[收藏]

    介绍 JSTL 全名为Java Server Pages Standard Tag Library(JSP Standard Tag Library),它的中文名称为JSP 标准标签函数库. Web  ...

  9. Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架

    JSTLApache提供的标签库 jar包:jstl-1.2.jar,如果传MyEclipse,他会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入.--------- ...

随机推荐

  1. poj1182(种类并查集好题)

    不得不说,我得感谢@驱动幽灵百鬼夜行小肆,正是因为看明白了他给出的解析,我才完全弄懂种类并查集的,这里,我也不想去改其他的,就直接引用他的解题报告吧 转载:http://blog.csdn.net/c ...

  2. 07Vue.js快速入门-Vue路由详解

    对于前端来说,其实浏览器配合超级连接就很好的实现了路由功能.但是对于单页面应用来说,浏览器和超级连接的跳转方式已经不能适用, 所以各大框架纷纷给出了单页面应用的解决路由跳转的方案. Vue框架的兼容性 ...

  3. EXCEL行倒叙

  4. Android开发(二)——自定义圆形控件的使用CircleImageView

    CircleImageView,a fast circular ImageView perfect for profile images. 主要的类CircleImageView: package d ...

  5. WPF学习笔记(1)——image控件图片不显示的问题

    说明(2017-6-7 16:08:35): 1. 本来想用winform的,用winform就没这么多破事了. 2. 不过项目要用WPF,拉出一个mediaelement控件,视频正常显示. 3. ...

  6. Python os.popen() 方法

    简述 就是新建一个管道执行一个命令. 方法是os.popen(命令,权限,缓冲大小) 比如 a = 'mkdir def' b = os.popen(a,) print b 就是等同于使用命令去创建了 ...

  7. [转]关于setInterval只执行一次的原因

    原文地址:https://blog.csdn.net/skyblacktoday/article/details/79374613 我在做一个demo的时候发现的,之前可能遇到过到时没有记住,也没有写 ...

  8. 【转】mybatis连接Oracle做增删改查

    原文地址:http://blog.csdn.net/liumengcheng/article/details/34422475 入门请看http://blog.csdn.NET/liumengchen ...

  9. PHPUnit 手册(转)

    PHPUnit 手册 PHPUnit 手册 Sebastian Bergmann 版权 © 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, ...

  10. C语言 · 数的运算

    算法提高 数的运算   时间限制:1.0s   内存限制:512.0MB      输入一个正整数(范围[1..10000]),打印其平方(不保留小数位).平方根.倒数.(用指针实现,保留2位小数,输 ...