JSTL常用标签小结之XML标签库
发布时间:2020-12-16 05:20:28 所属栏目:百科 来源:www.gis520.com XML 标签库 <
导读:推荐网站:www.gis520.com XML 标签库 x:parse x:parse标签是该组标签库的核心,它是作为解析XML文件而存在的。 x:parse标签属性和说明 属性 描述 doc 源XML的内容,该属性的内容应该为String类型或者java.io.Reader的实例,可以用xml属性来替代,但是不被推
推荐网站:www.gis520.com
XML 标签库 <x:parse> <x:parse>标签是该组标签库的核心,它是作为解析XML文件而存在的。 <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文件名为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="/WEB-INF/SampleXml.xml"/> <x:parse var="xmlFileValue" doc="${xmlFile}"/> 该示例读取XML文件得到了<c:import>标签的帮助,<c:import>标签将源XML文件的内容保存在“xmlFile”变量中,<x:parse>标签根据“xmlFile”变量的值解析“SampleXml.xml”。 <x:out> <x:out>标签从<x:parse>标签解析后保存的变量中取得需要的XML文件内容,并显示在页面上。该标签是通过XPath技术(定位XML元素的一种技术)来实现的。要使用<x:out>标签必须将xalan-j的jar包保存在“WEB-INF/lib”下。 <x:out>标签属性和说明 属性 描述 select XPath表达式 escape 当特殊字符如:“<,>,&,’,””出现在取得的结果字符串中时,将以转义字符来替换 <x:out>标签需要与<x:parse>标签协同工作,下面看一个示例。 <c:import var="xmlFile" url="/WEB-INF/SampleXml.xml"/> <x:parse var="xmlFileValue" doc="${xmlFile}"/> name:<x:out select="$xmlFileValue/xml-body/name"/><br> passWord:<x:out select="$xmlFileValue/xml-body/passWord"/><br> age:<x:out select="$xmlFileValue/xml-body/age"/><br> 读取XML文件并解析后的变量xmlFileValue将加上“$”作为XPath表达式的开头,select中的表达式将从xml-body根元素下的各个子元素中取得实体内容,最后将结果显示在页面上。根据“SampleXml.xml”文件的内容,将显示。 name:RW passWord:123456 age:28 <x:set> <x:set>标签允许将某个源XML中元素的实体内容或属性,保存到一个变量中去,它的实现也依靠XPath技术。它的属性和描述如表9.14所示: <x:set>标签属性和说明 属性 描述 select XPath表达式 var 保存结果的变量名 scope 变量的作用范围(可选) <x:set>标签的var保存的变量由XPath的结果决定该变量的类型,下面看一个示例。 <c:import var="xmlFile" url="/WEB-INF/SampleXml.xml"/> <x:parse var="xmlFileValue" doc="${xmlFile}"/> <x:set select="$xmlFileValue/xml-body/name" var="thisName"/> 这里将保存XML的name元素内容到变量“thisName”中。 <x:if> <x:if>标签允许由XPath的boolean()函数得到的判断结果,来判断是否显示其标签所包含的内容。<x:if>标签的属性与<x:set>标签相同,但是var的结果只能是boolean类型。 <x:choose>、<x:when>、<x:otherwise>标签 这组标签将一起使用,来提供“if elseif”语句的功能。 <x:choose>标签没有属性,可以被认为是父标签,<x:when>、<x:otherwise>将作为其子标签来使用。 <x:when>标签等价于“if”语句,它包含一个select属性,该属性为XPath判断表达式。 <x:otherwise>标签没有属性,它等价于“else”语句。 <x:forEach> <x:forEach>为对XML文件中同一名称元素的循环控制标签。 <x:set>标签属性和说明 属性 描述 select XPath表达式,结果是一个集合,将对该集合进行循环(可选) begin 开始条件(可选) end 结束条件(可选) step 循环的步长,默认为1(可选) var 做循环的对象变量名,表示XPath表达式结果集合中的一个对象(可选) varStatus 显示循环状态的变量(可选) 示例: <x:forEach select="$xmlFileValue/xml-body/books/book" var="book"> ${book} </x:forEach> 该示例将使用循环读取XML中多个同存于books元素下的book子元素。 <x:transform> <x:transform>标签允许使用XSLT(转换XML格式的语言)为页面的显示数据做格式化的处理。 <x:transform>标签属性和说明 属性 描述 doc 源XML的内容,该属性的内容应该为String、java.io.Reader、javax.xml.transform.Source、org.w3c.dom.Document的实例,或者从<x:parse>、<x:set>两个标签得到。可以用xml属性来替代,但是不被推荐(可选) xslt 源XSLT的内容,该属性的内容应该为String、java.io.Reader、javax.xml.transform.Source的实例(可选) docSystemId 定义一个URI,该URI将被使用到XML文件中以接入其他资源文件。可以用xml SystemId属性来替代,但是不被推荐(可选) xsltSystemId 定义一个URI,该URI将被使用到XSLT文件中以接入其他资源文件(可选) var 将格式化后的XML文件保存在该属性所指定的变量中,保存的变量为org.w3c.dom.Document接口类型(可选) scope 变量的作用范围(可选) result 保存转化结果的变量,保存的变量为javax.xml.transform.Result类型的实例(可选) 示例: <c:import var="xmlFile" url="/WEB-INF/SampleXml.xml" /> <c:set var="xsltdoc"> <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"><xsl:apply-templates/></xsl:template> <xsl:template match="xml-body"> <html> <head> </head> <body marginheight="0" marginwidth="0" topmargin="0" leftmargin="0"> <h2>UserName: <xsl:value-of select="name"/></h2> <h2>PassWord:<xsl:value-of select="passWord"/></h2> <h2>age:<xsl:value-of select="age"/></h2> <h3> 1: <xsl:value-of select="books/book"/></h3> </body> </html> </xsl:template> </xsl:stylesheet> </c:set> <x:transform xslt="${xsltdoc}" doc="${xmlFile}" /> 这个示例将XML文件保存的数据信息利用<c:import>保存在“xmlFile”中,然后使用<c:set>标签保存一个XSLT的源到“xsltdoc”,最后通过<x:transform>格式化XML文件的数据显示在页面上。
from:http://blog.sina.com.cn/s/blog_4c5ec41a01008rpg.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ReactiveCocoa框架菜鸟入门(四)——信号(Signal)详解
- 【问题解决】oracle官网下载oracle安装包名字orasso.wwsso_
- 违反了 UNIQUE KEY 约束 'UNQ_CusID_DetachPolicyID
- mojoPortal在codeplex上的站点
- postgresql – 在Postgres中将表从一个数据库复制到另一个数
- 在ruby中,file.readlines.each并不比file.open.each_line快
- react-native – 如何在Click事件中获取React Native中的El
- 使用SQLite In Memory配置测试NHibernate时,如何创建另一个
- 转载:2.6 服务进程Postgres
- Ruby方法()方法