本章目标
了解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标签库详解** JavaServer Pages Standard Tag Library(JSTL)是一个用于简化JSP开发的标签库,它包含多个核心功能模块,其中之一就是处理XML的XML标签库。这个库允许开发者在JSP页面中以声明式的方式...
JSTL主要由几个不同的标签库组成,包括核心标签库、SQL标签库、XML标签库以及函数标签库。 1. **核心标签库 (Core Tags):** 这个库定义了`cc.tld`,包含了用于常见任务的标签,如数据管理、流程控制和输出。主要...
4. **XML标签库**:用于处理XML文档的操作,如解析、遍历等。 - **URI**: `http://java.sun.com/jsp/jstl/xml` - **前缀**: `x` 5. **函数标签库**:提供了一些常用函数,如字符串处理、数组操作等。 - **URI**:...
4. **XML标签库(x:)**:用于处理XML文档,可以解析XML、导航XML结构等。 5. **SQL标签库(sql:)**:提供与数据库交互的能力,可以执行SQL查询、更新、事务管理等操作。 在描述中提到的"standerd包"可能是描述...
- **XML 标签库(XML Tags)**:处理XML文档和XPath表达式。 - **函数标签库(Function Tags)**:提供一系列函数供在JSP页面中使用。 2. EL(Expression Language)表达式的默认变量: - **Scope变量**:`...
2. **XML标签库**:提供处理XML文档的标签,如解析XML、XSLT转换等。 3. **国际化(I18N)标签库**:支持多语言环境,如资源包(Resource Bundle)的管理和日期/时间格式化。 4. **SQL标签库**:用于与关系型...
本文将深入探讨JSTL的核心标签库、数据库标签库、I18N格式化标签库、XML标签库和JSTL函数标签库,帮助开发者掌握这些标签的使用方法。 #### JSTL核心标签库:基础与变量管理 JSTL的核心标签库是JSTL中最常用的库之...
xml文件,可以下载,从一个网址上下载文件 ,按照格式解析它
JSTL中的XML标签库提供了一系列工具,可以帮助开发者轻松地解析和操作XML文档。这些标签主要分为三类: - **XML核心标签 (Core)**:提供基本的XML处理功能,如解析XML文档。 - **XML控制流程标签 (Control Flow)**...
5. **xml**:XML标签库,用于处理XML文档和XPath表达式。 6. **core**:核心标签库,包含了最基础的控制结构,如迭代、条件判断等。 在实际应用中,使用JSTL通常需要引入相应的jar包。"JSTL标签库相关jar包"可能...
3. **XML标签库**:用于处理XML文档,如解析、转换和操作XML数据。`<x:parse>`可以将XML字符串转换为DOM对象,`<x:transform>`可以进行XSLT转换。 4. **JSTL国际化的fmt标签库**:支持多语言环境,提供日期、数字、...
4. **XML标签库** - `http://java.sun.com/jsp/jstl/xml`:处理XML文档。 - `<x:parse>`、`<x:transform>`:解析XML和进行XSLT转换。 - `<x:out>`、`<x:element>`:输出XML内容或创建新的XML元素。 5. **函数标签...
2. **XML标签库(XML Tags)**:这个库提供了处理XML文档的标签,如`<x:parse>`用于解析XML内容,`<x:out>`用于显示XML数据,`<x:transform>`用于XSLT转换。 3. **SQL标签库(SQL Tags)**:允许在JSP页面中执行...
2. **XML标签库 (XML Processing Tag Library)** - URI: `http://java.sun.com/jstl/xml` - 前缀: `x` - 示例: `<x:forEach>` - 功能: 支持XML文档的处理。 3. **I18N格式标签库 (Internationalization Tag ...
- **XML标签库** (`x`) - **函数标签库** (`fn`) ##### 2.1 核心标签库 (`c`) 核心标签库包含了JSTL中最常用的标签,主要用于处理数据的输出、流程控制、迭代等。 - **`<c:out>`** - **功能**: 主要用于显示数据...
- **XML 标签库**(xml):处理XML文档,如`<x:forEach>`。 - **函数标签库**(fn):提供一些实用的函数,如`<fn:split>`。 **3. 核心标签库的其他功能** - **流程控制标签**:`<c:if>`、`<c:choose>`、`...
本文将深入探讨JSP标签,特别是自定义标签,并解释如何通过`web.xml`配置文件来引入标签库描述文件,以便在JSP页面中使用这些标签。 首先,JSP标准标签库(JSTL)是一套预定义的标签,用于处理常见的任务,如迭代、...
XML标签库(xml)提供了处理XML文档所需的功能,包括解析XML文档、遍历XML节点和使用XSLT转换XML文档等。这些功能对于在Web应用中集成XML数据非常重要。 为了使用JSTL标签库,需要在JSP页面中添加特定的taglib指令...