标签:
No. |
功能分类 |
标签名称 |
描述 |
1 |
核心操作 |
<x:out> |
输出XPath指定的内容 |
2 |
<x:parse> |
进行XML解析 |
|
3 |
<x:set> |
将内容保存在属性范围之中 |
|
4 |
流程控制 |
<x:if> |
判断XPath指定的内容是否满足条件 |
5 |
<x:choose> |
多条件判断,相当于switch语句 |
|
6 |
<x:when> |
判断条件,相当于case语句 |
|
7 |
<x:otherwise> |
条件出口,相当于default |
|
8 |
<x:forEach> |
循环输出节点 |
XPath简介 :
No. |
路径标记 |
描述 |
1 |
根元素 |
/ |
2 |
父节点 |
../ |
3 |
任何路径下的节点 |
// |
4 |
属性 |
@属性名称 |
5 |
通配符 |
* |
定义一个xml文件 —— address.xml :
<?xml version="1.0" encoding="GBK"?> <addresslist> <linkman> <name id="lxh">李兴华</name> <email>mldnqa@163.com</email> </linkman> </addresslist>
No. |
路径标记 |
描述 |
1 |
找到name元素 |
/addresslist/linkman/name |
2 |
直接找到name元素 |
//name |
3 |
找到id属性 |
//name/@id |
<x:parse>标签 :主要做用是进行XML解析的操作
要解析的XML文件
<x:parse/>
<x:parse >标签的属性 :
No. |
属性名称 |
EL支持 |
描述 |
1 |
var |
× |
保存解析后的XML文件的对象 |
2 |
scope |
× |
var变量的保存范围,默认是page范围 |
3 |
varDom |
× |
使用DOM解析后的XML文件对象 |
4 |
scopeDom |
× |
varDom属性的保存范围 |
5 |
systemId |
√ |
文件的URI |
<x:out>标签 :用于输出XML文件的内容,输出时要通过XPath进行路径的指定,标签的语法如下所示:
定义要解析的XML文件 :
<?xml version="1.0" encoding="GBK"?> <addresslist> <linkman> <name id="lxh">李兴华</name> <email>mldnqa@163.com</email> </linkman> </addresslist>
输出name和email元素的内容 —— xml_out.jsp :
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%> <%@ taglib uri="http://www.mldn.cn/jstl/x" prefix="x"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <c:import var="add" url="/ch13/address.xml" charEncoding="GBK"/> <x:parse var="addressXml" doc="${add}"/> <h3>姓名:<x:out select="$addressXml/addresslist/linkman/name"/>(编号: <x:out select="$addressXml/addresslist/linkman/name/@id"/> )</h3> <h3>邮箱:<x:out select="$addressXml/addresslist/linkman/email"/></h3> </body> </html>
<x:set>标签 :可以将从XML文件取出的内容保存在指定的属性范围之中,标签语法如下所示:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.mldn.cn/jstl/x" prefix="x"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<c:import var="add" url="/ch13/address.xml" charEncoding="GBK"/>
<x:parse var="addressXml" doc="${add}"/>
<x:set var="nameXml" scope="page" select="$addressXml/addresslist/linkman"/>
<h3>姓名:<x:out select="$nameXml/name"/></h3>
</body>
</html>
<x:if>标签 :主要功能是用于判断XPath指定的内容是否符合判断的条件,此标签的语法如下所示:
条件满足时的输出内容
</x:if>
使用<x:if>判断输出 —— xml_if.jsp :
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%> <%@ taglib uri="http://www.mldn.cn/jstl/x" prefix="x"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <c:import var="add" url="/ch13/address.xml" charEncoding="GBK"/> <x:parse var="addressXml" doc="${add}"/> <x:if select="$addressXml//name/@id=‘lxh‘"> <!-- 判断id属性是否是lxh --> <h3>存在编号是lxh信息,姓名:<x:out select="$addressXml/addresslist/linkman/name"/></h3> </x:if> </body> </html>
<x:choose>、<x:when>、<x:otherwise>标签 :执行多条件判断
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.mldn.cn/jstl/x" prefix="x"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<c:import var="add" url="/ch13/address.xml" charEncoding="GBK"/>
<x:parse var="addressXml" doc="${add}"/>
<x:choose>
<x:when select="$addressXml//name/@id=‘lxh‘">
<h3>编号是lxh的名称:<x:out select="$addressXml/addresslist/linkman/name"/></h3>
</x:when>
<x:otherwise>
<h3>啥也不是了!</h3>
</x:otherwise>
</x:choose>
</body>
</html>
<x:forEach>标签 :与<c:forEach>类似,唯一不同的是<x:forEach>标签主要的功能是迭代xml文件,此标签语法如下所示:
标签体内容
</x:forEach>
<x:forEach>标签的属性 :
No. |
属性名称 |
EL支持 |
描述 |
1 |
select |
× |
XPath路径 |
2 |
var |
× |
储存当前浏览的节点对象 |
3 |
varStatus |
× |
存放当前浏览的节点对象的相关信息 |
4 |
begin |
√ |
浏览的开始位置 |
5 |
end |
√ |
浏览的结束位置 |
6 |
step |
√ |
每次的间隔步长 |
定义XML文件 —— alladdress.xml :
<?xml version="1.0" encoding="GBK"?> <addresslist> <linkman> <name id="lxh">李兴华</name> <email>mldnqa@163.com</email> </linkman> <linkman> <name id="kf">客服中心</name> <email>mldnkf@163.com</email> </linkman> <linkman> <name id="hr">招聘中心</name> <email>mldnhr@163.com</email> </linkman> </addresslist>
使用<x:forEach>输出全部<name>节点的内容:
<%@ page contentType="text/html" pageEncoding="GBK"%> <%@ taglib uri="http://www.mldn.cn/jstl/core" prefix="c"%> <%@ taglib uri="http://www.mldn.cn/jstl/x" prefix="x"%> <html> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> <body> <c:import var="add" url="/ch13/alladdress.xml" charEncoding="GBK"/> <x:parse var="addressXml" doc="${add}"/> <x:forEach select="$addressXml//linkman" var="linkman"> <h3>姓名:<x:out select="name"/> (编号:<x:out select="name/@id"/>)</h3> </x:forEach> </body> </html>
标签:
原文地址:http://www.cnblogs.com/wujixing/p/5018832.html