jsp:xpath - xml
.1 关于“/ ”和“// ”的使用
“/”是表示当前文档的节点,类似 DOS 目录分割符,“//”则表示当前文档所有的节点。类似查看
整个目录。
(1)/authors/author:表示选择根目录下、父节点为 authors 的元素“author”。
(2)/authors/author/name:表示查找到所有名称为“name”的元素,但是它的父节点为“author”,
而“author”的父节点又为“authors”。
(3)//name:表示查找 XML 文件中的所有“name”元素,而无论这个元素在什么层次。
.2 关于“* ”的使用
“*”标记表示某个层次上的所有元素。
(1)/authors/author/*:表示在 author 元素(它的父节点为 authors)下的所有子元素(本例为 name
和 nationality 两个元素)。
(2)/authors/*/name:表示查找所有名为 name 的元素,而不管它的父节点是谁,或者是 author,
也或者是 super-author 元素,但是再上一个父节点确必须是 authors 元素。
(3)//*:表示查找到所有元素。
3 路径分支
方括号表示路径分支。
(1)/authors/author[nationality]/name:表示只查找那些在 authors 元素下包含 nationality 子元素的
author 元素的 name 节点。
(2)authors/author[nationality=’Russian’]/name:表示查找那些nationality子元素值为German的author
元素下的 name 节点,而且 author 元素的父节点为 authors。
XML核心动作标签
包括的核心动作标签有如下几个:
<x.parse>:用于解析 XML 文件。
<x.out>:通过 XPath 来读取 XML 文件中的某元素。
<x:set>:该标签用来计算 XPath 表达式,并且把结果保存在指定的变量当中。
<x:parse> 标签
该标签的使用格式如下:
<x:parse doc=”XMLDocument”
[var=”varName”] [scope=”scope”] | [varDom=”varName”] [scopeDom=”scope”]
[systemId=”systemId”] [filter=”filter”] />
标签中的各属性描述如下:
doc:指定要解析的 XML 文件。一般使用<c:import>检索到相应的 XML 文件。
var:把解析之后的 XML 文件存储在 var 属性指定的变量中。
scope:设置 var 属性指定的变量有效范围。
varDom:存储解析后的 XML 文件。
scopeDom:设置 varDom 属性指定变量的有效范围。
systemId:指定 XML 文件的 URI。
filter:对应的是 org.xml.sax.XMLFilter 类。
例子:
<%@ 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" %> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body> <h4>解析xml</h4>
<c:set var="xmlText">
<a>
<b>
<c>good</c>
</b>
<d>
<c>body</c>
</d>
</a>
</c:set>
<hr>
<x:parse var="xmlDoc" doc="${xmlText}" />
<x:out select="$xmlDoc//c"/><br>
<x:out select="$xmlDoc/a/d"/><br>
<x:out select="$xmlDoc/a/*"/><br> </body>
</html>
<x:out> 标签
该标签是用于计算 XPath 表达式,然后把查找到的元素进行输出。
其一般的使用格式如下:
<x:out select=”XPathExpression” [escapeXml=”true|false”] />
属性说明如下:
select:将要计算的 XPath 表达式。
escapeXml:确定<、>、&、’、”这些字符是否被转换成字符实体代码,默认为 true。
<?xml version="1.0" encoding="UTF-8"?>
<games>
<country id="Luxembourg">
<athlete>
<name>Lux 1</name>
<sport>swimming</sport>
<age>23</age>
<gender>M</gender>
</athlete>
<athlete>
<name>Lux 2</name>
<sport>wrestling</sport>
<age>31</age>
<gender>M</gender>
</athlete>
</country>
<country id="Denmark">
<athlete>
<name>Den 1</name>
<sport>cycling</sport>
<age>18</age>
<gender>F</gender>
</athlete>
<athlete>
<name>Den 2</name>
<sport>sailing</sport>
<age>27</age>
<gender>M</gender>
</athlete>
</country>
</games>
<%@ 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" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>games</title>
</head>
<body>
<h4>parse和out输出</h4>
<!-- 引入文件 -->
<c:import var="doString" url="games.xml"/>
<!-- 开始解析xml -->
<x:parse var="doc" doc="${doString}"/>
<table border="1">
<tr>
<td valign="top"><pre><c:out value="${doString}"/></pre></td>
<td valign="top">
<!-- 内嵌table -->
<table border="1">
<tr>
<td>XPath元素</td>
<td>查找到的元素</td>
</tr>
<tr>
<td>$doc//sport[只取第一个]</td>
<td><x:out select="$doc//sport"/></td>
</tr>
<tr>
<td>$doc/games/country/*</td>
<td><x:out select="$doc/games/country/*"/></td>
</tr>
<tr>
<td>$doc//*</td>
<td><x:out select="$doc//*"/></td>
</tr>
<tr>
<td>$doc/games/country</td>
<td><x:out select="$doc/games/country"/></td>
</tr>
<tr>
<td>$doc/games/country/[Last()][取最后一个元素]</td>
<td><x:out select="$doc/games/country[last()]"/></td>
</tr>
<tr>
<td>$doc//@id[取第一个id]</td>
<td><pre><x:out select="$doc//@id"/></pre></td>
</tr>
<tr>
<td>$doc//country/[@id="Denmark""]</td>
<td><pre><x:out select="$doc//country[@id='Denmark']"/></pre></td>
</tr>
</table>
<!-- 内嵌table -->
</td>
</tr>
</table>
</body>
</html>
<x:set> 标签
该标签首先计算 XPath 表达式,然后把计算的结果保存在指定的变量中,而不是输出。
<x:set>标签的一般使用格式如下:
<x:set select=”XPathExpression”
var=”varName” [scope=”page|request|session|application”] />
标签中各属性描述如下:
select:将要被计算的 XPath 表达式。
var:把 XPath 表达式计算之后的值保存在这个属性所指定的变量中,以后可以通过指定的变量
来引用这个值。
scope:设置 var 属性所指定变量的有效范围。
<c:set var="xmlText">
<a>
<d>
<c>baby</c>
<k>good</k>
</d>
</a>
</c:set> <x:set var="doc" select="$xmlText//a"/>
<x:out select="$doc"/>
jsp:xpath - xml的更多相关文章
- JSP处理XML数据
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/xml-data.html: 当通过HTTP发送XML数据时,使用JSP处理传入和传出的XML文件是有意义 ...
- html、css、javascript、JSP 、xml学习顺序应该是怎样的呢?
html==>css==>javascript==>jsp==>xml 1.先学习基本的HTML知识,了解大部分HTML标签的作用. 2.学习CSS,熟悉如何用CSS去控制HT ...
- JSP web.xml <jsp-config>标签使用详解
<jsp-config> 包括 <taglib> 和 <jsp-property-group> 两个子元素.其中<taglib> 元素在JSP 1.2 ...
- jsp操作xml
<?xml version="1.0" encoding="UTF-8"?> <!-- 说明是xml文件,文件的版本和字符编码 --> ...
- JSP XML 数据处理
JSP XML 数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档.作为一个XML文档,它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创 ...
- JSP-Runoob:JSP XML 处理数据
ylbtech-JSP-Runoob:JSP XML 处理数据 1.返回顶部 1. JSP XML 数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RS ...
- http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed wit
异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the j ...
- HTML/XML/XPATH基础
Html超文本标记语言 网页上单击右键→查看源文件/查看源代码 Html基本结构 <html> 为文档根元素,所有元素都在内部进行 <head> ...
- XML之XPath
1.在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档节点(或称为根节点). 1.1 XPath 术语 节点(Node) 在 XPath 中,有七种类型的节点:元 ...
随机推荐
- Linux基础命令(四)
作业一:1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 [root@bogon ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 byte ...
- 贪玩ML系列之一个BP玩一天
手写串行BP算法,可调batch_size 既要:1.输入层f(x)=x 隐藏层sigmoid 输出层f(x)=x 2.run函数实现单条数据的一次前馈 3.train函数读入所有数据for循环处理 ...
- 系列文章(三):WAPI为无线局域网WLAN安全而生——By Me
导读:无线局域网(又称为WLAN,Wireless Local Area Network),其应用领域不断拓展,无线接入所具有的前所未有的连接性和自动化能够为人们带来巨大的便利和商机.与此同时,在信息 ...
- NUnit TestFixtureSetup 和 TestFixtureTearDown
TestFixtureSetup 和 TestFixtureTearDown 在所有测试开始前(TestFixtureSetup)或结束后(TestFixtureTearDown)运行一 次.记住他只 ...
- [转]C#读写远程共享文件夹
1.在服务器设置一个共享文件夹,在这里我的服务器ip地址是10.200.8.73,共享文件夹名字是share,访问权限,用户名是administrator,密码是11111111. 2.新建一个控制台 ...
- Xamrin开发安卓笔记(三)
http://www.cnblogs.com/minCS/p/4118170.html Xamrin开发安卓笔记(三) 安装片 Xamrin开发安卓笔记(一) Xamrin开发安卓笔记(二) 这次 ...
- html基本标签介绍及应用
<!-- html标签 特征: 1.空白折叠现象 2.对空格和换行不敏感 3.标签要严格封闭 p标签的嵌套 多注意!!!!!! html中: 1.行内标签(不换行) (1)在一行内显示 span ...
- Kattis - cokolada【水】
Kattis - cokolada[水] 题意 有一个人想吃巧克力,但是巧克力都是按照 2 的幂次的数量包装的,然后他想吃一定数量块的巧克力,然后可以敲碎,每次敲碎都分成两半,比如四块装的分成两块就是 ...
- 自动化测试管理平台ATMS(V1.0.1_7.29)下载
自动化测试管理平台ATMS(V1.0.1_7.29)下载http://automationqa.com/forum.php?mod=viewthread&tid=2582&fromui ...
- C#中跨库事务处理解决方案
最近新接手了一项业务,其中有一个方法,需要对业务表进行写入数据,之后记录到日志表中.这部分代码原先是前人写的,他没有采用任何方案,只是简单的调用Ado.net执行了两次写库操作.因此经常出现系统使用者 ...