本章目标
了解XML标签库的主要标签;
可以使用XML标签进行XML文件的读取操作。
XML标签库
在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理。
XML标签
XPath简介
XPath的主要功能是在XML文档之中,能够准确地找到某一个节点元素,可以通过XPath找到一个XML文档中定义的节点内容或属性等。
XPath路径标记
定义一个xml文件 —— address.xml
<?xml version="1.0" encoding="UTF-8"?> <addresslist> <linkman> <name id="17">chaoyi</name> <email>chaoyi77@163.com</email> </linkman> </addresslist>
图示:
<x:parse>标签
<x:parse>标签的主要做用是进行XML解析的操作,语法如下所示:
<x:parse [doc="XML文件内容"] [var="保存名称"] [scope="[page | request | session | application]"] [varDom="DOM解析后的XML对象"] [scopeDom="varDom范围"] [systemId="XML文件的URI"]/>
<x:parse [var="保存名称"] [scope="[page | request | session | application]"] [varDom="DOM解析后的XML对象"] [scopeDom="varDom范围"] [systemId="XML文件的URI"]>
要解析的XML文件
<x:parse/>
<x:parse >标签的属性
<x:out>标签
<x:out>标签的主要功能是用于输出XML文件的内容,输出时要通过XPath进行路径的指定,标签的语法如下所示:
<x:out select="XPath路径" [escapeXml="[true | false]"]/>
定义要解析的XML文件
<?xml version="1.0" encoding="UTF-8"?> <addresslist> <linkman> <name id="17">chaoyi</name> <email>chaoyi77@163.com</email> </linkman> </addresslist>
输出name和email元素的内容
<%@ page language="java" contentType="text/html" 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"%> <html> <head> <title>输出 name 和 email 元素的内容</title> </head> <body> <c:import var="add" url="address.xml" charEncoding="UTF-8" /> <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>标签
使用<x:set>标签可以将从XML文件取出的内容保存在指定的属性范围之中,标签语法如下所示:
<x:set select="XPath路径" var="属性保存名称" [scope="[page | request | session | application]"]/>
使用<x:set>标签保存解析的结果
<%@ page language="java" contentType="text/html" 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"%> <html> <head> <title>使用 x:set 标签保存解析的结果</title> </head> <body> <c:import var="add" url="address.xml" charEncoding="UTF-8" /> <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>标签
<x:if>标签的主要功能是用于判断XPath指定的内容是否符合判断的条件,此标签的语法如下所示:
<x:if select="XPath路径" var="存放判断结果" [scope="[page | request | session | application]"]/>
<x:if select="XPath路径" var="存放判断结果" [scope="[page | request | session | application]"]>
条件满足时的输出内容
</x:if>
使用<x:if>判断输出
<%@ page language="java" contentType="text/html" 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"%> <html> <head> <title>使用 x:if 判断输出</title> </head> <body> <c:import var="add" url="address.xml" charEncoding="UTF-8" /> <x:parse var="addressXml" doc="${add}" /> <x:if select="$addressXml/addresslist/linkman/name/@id='17'"> <h3>存在编号为17信息,姓名:<x:out select="$addressXml/addresslist/linkman/name" /> </h3> </x:if> </body> </html>
效果图:
<x:choose>、<x:when>、<x:otherwise>标签
在核心标签库中曾经学习过<c:choose>、<c:when>、<c:otherwise>标签用于执行多条件判断,而在XML标签中也提供了一种类似的标签,主要的功能也是多XML中的数据进行多条件判断。
在一个<x:choose>标签中可以包含多个<x:when>以及一个<x:otherwise>标签,
<x:choose>的语法如下所示。
<x:choose> 编写<x:when>或<x:otherwise></x:choose>
<x:when>用于判断每一个条件,此标签的语法如下所示。
<x:when select="XPath路径"> 标签体</x:when>
<x:otherwise>标签
<x:otherwise> 标签体</x:otherwise>
使用<x:choose>进行判断
<%@ page language="java" contentType="text/html" 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"%> <html> <head> <title>使用 x:choose 进行判断</title> </head> <body> <c:import var="add" url="address.xml" charEncoding="UTF-8" /> <x:parse var="addressXml" doc="${add}" /> <x:choose> <x:when select="$addressXml/addresslist/linkman/name/@id='17'"> <h3>存在编号为17信息,姓名:<x:out select="$addressXml/addresslist/linkman/name" /> </h3> </x:when> <x:otherwise> <h3>啥也不是了!</h3> </x:otherwise> </x:choose> </body> </html>
效果图:
<x:forEach>标签
<x:forEach>标签的功能与<c:forEach>类似,唯一不同的是<x:forEach>标签主要的功能是迭代xml文件,此标签语法如下所示:
<x:forEach select="XPath路径" [var="存储的变量名称"] [varStatus="存放变量信息"] [begin="开始的位置"] [end="结束的位置"] [step="步长"]>
标签体内容
</x:forEach>
<x:forEach>标签的属性
定义XML文件 —— alladdress2.xml
<?xml version="1.0" encoding="UTF-8"?> <addresslist> <linkman> <name id="17">chaoyi</name> <email>chaoyi77@163.com</email> </linkman> <linkman> <name id="18">chaoyv</name> <email>chaoyv@163.com</email> </linkman> <linkman> <name id="19">yike</name> <email>baidu@163.com</email> </linkman> </addresslist>
使用<x:forEach>输出全部<name>节点的内容
<%@ page language="java" contentType="text/html" 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"%> <html> <head> <title>使用 x:forEach 输出全部 name 节点的内容</title> </head> <body> <c:import var="add" url="address2.xml" charEncoding="UTF-8" /> <x:parse var="addressXml" doc="${add}" /> <x:forEach select="$addressXml/addresslist/linkman" var="linkman"> <h3>姓名: <x:out select="name"/> ( 编号:<x:out select="name/@id"/> ) </h3> </x:forEach> </body> </html>
效果图:
小结
使用XML标签库可以方便的进行XML解析功能;
在XML标签库之中提供了判断、循环等常见操作。
相关推荐
JSTL XML标签库——XercesImpl.jar、xalan.jar
在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。... XML标签库 函数标签库
xml文件,可以下载,从一个网址上下载文件 ,按照格式解析它
JSTL标准标签库的各个标签详细说明,包含了核心标签库(c:),国际化标签库(fmt:)以及函数标签库(fn).注意:SQL标签库(sql:)以及XML标签库(xml:)不应使用,文档中也未提及
JSTL标签大全,涵盖JSTL教程 JSTL标签库使用方法: 标签库 URI 前缀 使用模式 ...XML标签库 http://java.sun.com/jstl/xml x …> 函数标签库 http://java.sun.com/jstl/functions fn <fn:tagname…>
JSTL 标准标签库,分为五大类核心标签库I18N格式标签库(国际化要用)SQL标签库 XML标签库 几乎不用函数标签库JSTL前置名称URI范例核心标签库ch
17.6 xml标签库 529 17.6.1 核心操作 529 17.6.2 流程控制 532 17.6.3 转换操作 536 17.7 functions标签库 539 17.7.1 fn:contains 539 17.7.2 fn:containsignorecase 539 17.7.3 fn:startswith 540 17.7.4 ...
JSP标签、自定义标签,含有属性的JSP标签,学习标签的基本功。
17.6 xml标签库 529 17.6.1 核心操作 529 17.6.2 流程控制 532 17.6.3 转换操作 536 17.7 functions标签库 539 17.7.1 fn:contains 539 17.7.2 fn:containsignorecase 539 17.7.3 fn:startswith 540 17.7.4 ...
17.6 xml标签库 529 17.6.1 核心操作 529 17.6.2 流程控制 532 17.6.3 转换操作 536 17.7 functions标签库 539 17.7.1 fn:contains 539 17.7.2 fn:containsignorecase 539 17.7.3 fn:startswith 540 17.7.4 ...
XML 标签库:http://java.sun.com/jsp/jstl/xml 用来访问 XML 文件的工作,这是 JSTL 标签库的一个特点。 函数标签库:http://java.sun.com/jsp/jstl/functions 用来读取已经定义的某个函数。 数据库...
17.6 xml标签库 529 17.6.1 核心操作 529 17.6.2 流程控制 532 17.6.3 转换操作 536 17.7 functions标签库 539 17.7.1 fn:contains 539 17.7.2 fn:containsignorecase 539 17.7.3 fn:startswith 540 17.7.4 ...
本资源主要介绍了标准标签库,包括核心标签、xml标签及格式化标签,数据库标签和函数标签
JSTL标签主要包含核心标签库、格式标签库、SQL标签库、XML标签库和函数标签库共5种标签库。 在使用JSTL标签之前必须在JSP页面的首行使用指令定义标签库的位置和访问前缀,(jstl 1.1)各个标签库的定义如下: 核心...
pugixml 是一个轻量级的 C XML处理库。它具有以下特点:1、类似DOM接口并具有丰富的遍历/修改功能。2、非常快的XML解析验证。3、XPath 1实现复杂的数据驱动的树查询。4、完全Unicode编码支持 标签:pugixml
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据...
java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)
13.6、XML标签库 13.6.1、XPath简介 13.6.2、标签 13.6.3、标签 13.6.4、标签 13.6.5、标签 13.6.6、、、标签 13.6.7、标签 13.7、函数标签库 13.8、本章摘要 13.9、开发实战讲解(基于Oracle...
13.6、XML标签库 13.6.1、XPath简介 13.6.2、标签 13.6.3、标签 13.6.4、标签 13.6.5、标签 13.6.6、、、标签 13.6.7、标签 13.7、函数标签库 13.8、本章摘要 13.9、开发实战讲解(基于Oracle...