XPath的主要功能是在XML中,能够准确的找到某个元素;
例如:现在有如下的xml文件;
<?xml version="1.0" encoding="gbk"?>
<addresslist>
<linkman>
<name id="lid">lid</name>
<email>886@163.com</email>
</linkman>
</addresslist>
找到name元素 /addresslist/linkman/name
找到name元素 //name
找到id属性 //name/@id
<x:parse>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<%@ taglib prefix="x" uri="/WEB-INF/x.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<c:import var="add" uri="/xm_jstl/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>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<%@ taglib prefix="x" uri="/WEB-INF/x.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<c:import var="add" uri="/xm_jstl/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"/>
</body>
</html>
<x:if>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<%@ taglib prefix="x" uri="/WEB-INF/x.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<c:import var="add" uri="/xm_jstl/address.xml" charEncoding="gbk"/>
<x:parse var="addressXml" doc="${add}"/>
<x:if select="$addressXml//name/@id='lid'">
<h3>存在编号是lid的信息,姓名:
<x:out select="$addressXml/addresslist/linkman/name"/>
</h3>
</x:if>
</body>
</html>
<x:choose>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<%@ taglib prefix="x" uri="/WEB-INF/x.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<c:import var="add" uri="/xm_jstl/address.xml" charEncoding="gbk"/>
<x:parse var="addressXml" doc="${add}"/>
<x:choose>
<x:when select="$addressXml//name/@id='lid'">
<h3>编号是lid的名称是:<x:out
select ="$addressXml/addresslist/linkman/name"/> </h3>
</x:when>
<x:otherwise>
<h3>啥也不是了</h3>
</x:otherwise>
</x:choose>
</body>
</html>
<x:forEach>标签:
<%@ page contentType="text/html" pageEncoding="gbk"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<%@ taglib prefix="x" uri="/WEB-INF/x.tld"%>
<html>
<head><title>这是测试</title></head>
<body>
<c:import var="add" uri="/xm_jstl/address.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"/>)
</x:forEach>
</body>
</html>
本文介绍了XPath在XML文件中的定位及数据提取方法,并通过具体示例展示了如何使用XPath配合JSTL标签库来解析XML文件,实现节点查找、条件判断等功能。
1327

被折叠的 条评论
为什么被折叠?



