JSTL_XML
一:说明
- 如有转载请标明出处
- 必须包含的属性->有默认值的属性->其余属性,中间用回车隔开
二:XML标记库
Xml标记库主要功能就是为在jsp页面中操作xml提供便利支持,本博文不做详解,<x:out>,<x:set>,<x:if>,<x:when>,<x:choose>,<x:forEach>,<x:otherwise>,<x:param>标记与core标记库中的同名标记的作用基本一样,唯一的区别就是这些标记是处理xml内容的
三:XML标记
1. <x:out>,<x:set>,<x:if>,<x:when>,<x:choose>,<x:forEach>,<x:otherwise>,<x:param>标记与core标记库中的同名标记的作用基本一样,唯一的区别就是这些标记是处理xml内容的
2. <x:parse>标记
示例代码:
Xml文件内容:
<?xml version="1.0" encoding="UTF-8"?> <peoples> <people> <name>达伦·布朗</name> <sex>man</sex> </people> <people> <name>爱华顿g</name> <sex>little man</sex> </people> <people> <name>夏洛特·玲玲</name> <sex>women</sex> </people> <people> <name>休斯顿·魔术师</name> <sex>bigman</sex> </people> </peoples>
Jsp文件内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <c:import var="file" url="peoples.xml" charEncoding="utf-8"/> <x:parse xml="${file}" var="cc"/> <table border="1"> <tr> <td>姓名</td> <td>性别</td> </tr> <x:forEach var="n" select="$cc/peoples/people"> <tr> <td> <x:out select="$n/name"/> </td> <td> <x:out select="$n/sex"/> </td> </tr> </x:forEach> </table> </body> </html>
所有属性:
Doc:所要解析的XML文件的名称,或者是java.io.Reader类型的对象
scope:设定var变量的作用范围,默认值:page
scopeDom:设定varDom变量的作用范围,默认值:page
var:设定保存解析以后的xml文档内容的变量的名称
varDom:设定代表所解析的xml文件的org.w3c.dom.Document类型的对象的变量名称
filter:设定org.xml.sax.XMLFilter类型的一个对象,这个对象可以在解析之前对文件进行过滤操作
systemId:设定当前要解析的xml文件的URI值
3.<x:transform>
可以实现xsl样式表的转换
示例代码:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <!-- TODO: Auto-generated template --> <html> <body> <table border="1"> <tr> <td>姓名</td> <td>性别</td> </tr> <xsl:for-each select="peoples/people" > <tr> <td><xsl:value-of select="name"/></td> <td><xsl:value-of select="sex"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?> <peoples> <people> <name>达伦·布朗</name> <sex>man</sex> </people> <people> <name>爱华顿g</name> <sex>little man</sex> </people> <people> <name>夏洛特·玲玲</name> <sex>women</sex> </people> <people> <name>休斯顿·魔术师</name> <sex>bigman</sex> </people> </peoples>
Transform.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> <c:import url="peoples.xml" var="url" charEncoding="utf-8"/> <c:import url="people.xsl" var="xsl" charEncoding="utf-8"/> <x:transform doc="${url}" xslt="${xsl}"/>
属性介绍:
doc:所要转换的xml文件的名称,或者是java.io.Reader对象
xslt:所要转换的xslt文件的名称,也可以是Reader或者javax.xml.transform.Source类型的对象
scope:设置var变量的保存范围,默认值:page
docSystemId:设置当前要转换的xml文件的uri值
xsltSystemId:设置要转换成的xslt文件的URI值
var:设定保存后内容的变量的名称
result:设定保存后内容的变量的对象,对象类型:javax.xml.transform.Result