JSTL标签库: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>

<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”]>

<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)循环功能。

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.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”>

2.3.<x:forEach>标签

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

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/JSP/

【语法】:

<x:forEach select=”XPathExperssion”[var=”name”][varStartus=”StartusName”] [begin=”begin”][end=”end”][step=”step”]>

//标签主体

</x:forEach>

<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>

<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指定参数值。

作者:csdn博客 跬步小流

时间: 2024-11-03 13:55:47

JSTL标签库:XML标签库的相关文章

bug-js标签中的标签库语法编译报错,不妨碍正常运行.

问题描述 js标签中的标签库语法编译报错,不妨碍正常运行. 如图: 老师讲说是myeclipse自身的bug,,, 我看了其他班级的同学没有这种情况,他们的版本和我们不同, 不知道有人知道另外有什么其他办法可以解决这个问题不? 先谢谢了! 解决方案 剪切掉,然后再粘贴上来试试 如果不行应该是和版本有关系 解决方案二: 按你说的我试过了,还是如此,,, 可能是因为版本的原因吧 解决方案三: 你重新建一个页面,把这代码拷贝过去就行,因为语法本身是没有错误的 解决方案四: 可能因为版本问题吧

JSP中常用的JSTL fmt(format格式化)标签用法整理_JSP编程

JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言.同时还提供了格式化数据和日期的方法.实现这些功能需要I18N格式标签库(I18N-capable formation tags liberary).引入该标签库的方法为: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> I18N格式标签库提供了11个标签,这些 标签从功能上

java项目中web.xml标签问题

问题描述 java项目中web.xml标签问题 org.xml.sax.SAXParseException: The element type "web-app" must be terminated by the matching end-tag "". 所示,我这个项目全搜了一下就web.xml中使用了上面的标签,而且开始标签和结束标签都有,实在不明白为什么还会报这个错,项目也已经clean好几遍了,都没啥作用.请各位指点指点 解决方案 JAVA web 项目中

JSTL提供的函数标签操作EL表达式字的符串

在jsp页面导入标签 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>   (1)转换字符串大小写: toLowerCase("要截取的字符串"):${fn:toLowerCase("Hello,Word!")} toUpperCase("要截取的字符串"):${fn:toUpperCase("H

javaeye-没找到问题在哪!!大神帮忙看一下代码(JSP使用JSTL的c:forEach标签显示数据怎么不管用

问题描述 没找到问题在哪!!大神帮忙看一下代码(JSP使用JSTL的c:forEach标签显示数据怎么不管用 <form name="myform" method="post" action="newstypeservlet?op=batchDelete"> <table border="1"> <tr> <th>编号</th> <th>类型名</t

尽量避免使用中文XML标签

xml|中文 以前参与某标准工作组的工作时,XML标签使用中文还是英文是一个经常的话题和争论焦点.从实现角度来看待这个问题,会倾向于使用英文(我个人一直这样坚持).虽然XML标准要求解析器实现必须支持Unicode,但是不能完全做到支持甚至完全不支持中文XML标签的实现到处都是.如果你的XML文档的目标用户是全球的,那么标签使用ASCII字符是最保险的方式. 强烈要求使用中文的理由一般来说有以下几个: 中文易读(针对国人来说,这是从国情出发:),具有中国特色: 与其他国家或组织交流时,能增加筹码

php操作xml入门之xml基本介绍及xml标签元素

 以xml实例来讲解: 代码如下: <?xml version="1.0" encoding="utf-8" standalone="no" ?> <class> <student> <name>小乔</name> <sex>女</sex> <age>23</age> </student> <student> <

jaxb读取xml中的标签及子标签的全部内容

问题描述 jaxb读取xml中的标签及子标签的全部内容 通过jaxb读取xml中某个标签下的所有内容,包含子标签和值,xml格式固定,示例如下: 我想将"address"下的内容当做一个整体来读取,读取后的内容为: 请问有没有办法? 解决方案 安慰是个人爸爸八佰伴 解决方案二: flex4.0精确读取xml标签与属性

thinkphp-php中xml标签内的时间戳如何改为ymd形式

问题描述 php中xml标签内的时间戳如何改为ymd形式 如图 thinkPHP的 html中使用这个xml 其中有一项时间 re_time 但数据库中的是时间戳的形式 结果显示出来也是时间戳的 这里如何改 能显示出年月日的形式 <div class="blank5"></div> <html:list id="dataTable" style="dataTable" name="user" ch