XPath


1.XPath简介

2.节点

3.轴

4.节点测试

5.表达式



1.什么是 XPath?

  • XPath 使用路径表达式在 XML 文档中进行导航
  • XPath 包含一个标准函数库
  • XPath 是 XSLT 中的主要元素
  • XPath 是一个 W3C 标准

2.节点:

在 XPath 中,有七种类型的节点:
元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

<?xml version="1.0" encoding="utf-8" ?>
<!-- simplexml.xml -->
<!-- simple xml document -->
<book title="java how to program " >
	<simple>
		<![CDATA[
			//Java comment
			if(pageCount > index )
			{
				index++;


			}
			]]>
	</simple>
	JAVA How to Program By ..
</book>

-根节点
|
|--指令节点xml
|--注释节点simplexml.xml
|--注释节点simple xml document
|--元素节点book
|
|--属性节点title
|--元素节点simple
|
|--文本节点//java comment
|if(pageCount> index)
|{
|index++;
|}
|
|--文本节点JAVA How to Program By ..



3.轴




xpath.xml:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="xpath.xsl" type="text/xsl" ?>

<books title="轴" >
	<book id="id01">

		<name>XML入门指南</name>
		<publisher>清华大学出版社</publisher>

	</book>

	 <book id="id02">

                <name>XPath入门指南</name>
                <publisher>电子机械出版社</publisher>

        </book>
	 <book id="id03">

                <name>XSL入门指南</name>
                <publisher>清华大学出版社</publisher>

        </book>
</books>


xpath.xsl:
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
	<html>
		<head><title>
			<xsl:value-of select="books/ attribute::title"/>
		</title></head>
		<body>
			<xsl:apply-templates select="books/book[attribute::id='id02']" />

		</body>
	
	</html>

</xsl:template>
<xsl:template match="books/book[attribute::id='id02']">
<h3 style="color:red;">当前节点的ID:
<xsl:value-of select="attribute::id"/>
</h3>

前向轴child下第一个book节点下的name节点:<br/>
<xsl:value-of select="child::name"/><br/>

反向轴ancestor包含的节点:<br/> 
<xsl:value-of select="ancestor::node()" /><br/>

前向following包含的节点 :<br/>
<xsl:value-of select="following::node()" /><br/>

轴attribute :<br/>
<xsl:value-of select="attribute::id"/>
</xsl:template>
</xsl:stylesheet>

效果:

当前节点的ID:id02

前向轴child下第一个book节点下的name节点:
XPath入门指南
反向轴ancestor包含的节点:
XML入门指南清华大学出版社 XPath入门指南 电子机械出版社 XSL入门指南 清华大学出版社
前向following包含的节点 :

轴attribute :
id02


解释:
前向轴:表示当前节点往下
反向轴:表示当前节点往上


self选取当前节点
parent选取当前节点的父节点
child选取当前节点的所有子元素
ancestor选取当前节点的所有先辈(父、祖)
ancestor-or-self选取当前节点的所有先辈和当前节点本身
descendant选取当前节点的所有后代元素(子、孙)
descendant-or-self选取当前节点的所有后代元素(子、孙)以及当前节点本身
following选取文档中当前节点的结束标签后的所有节点
following-sibling选取当前节点后面的同胞节点
preceding选择当前节点开始标签前的所有节点
preceding-sibling选择当前节点开始标签前的同胞节点
attribute选取当前节点的所有属性
namespace选取当前节点的所有命名空间节点


一些简写
完整形式简写形式
child::可直接省去如:/child::node()  等价于/node()
attribute::(@)如 attribute::xx 等价于  @xx
/descendant-or-self::node()/简写为两个斜杠(//)
self::node()简写为一个点号(.).node()
parent::node()..node()


4.节点测试


节点测试说明
*选择同一主要类型的所有子节点
node()匹配i任何节点
text()匹配i文本 节点
comment()匹配注释节点
processing-instruction()匹配处理指令节点
节点名称匹配带有指定节点名的所有节点
<xsl:node-name > 标记用于显示XML标记的名称。
<xsl:attribute> 元素用于向元素添加属性。
<xsl:element> 元素用于在输出文档中创建元素节点。

在XSL中提供了三种布尔运算符:$and$ (&&)、 $not$  (||)、 $or$ 。可以构成逻辑表达式,来设置对数据筛选条件。


5.表达式

XPath表达式是由一系列定位步骤组成的定位路径。

定位步骤的基本语法如下所示:

轴::节点测试【谓词】

1)轴:用来确定搜索的方向

2)节点测试:用来确定匹配节点类型

3)谓词:用来对符合匹配类型的节点进行筛选




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值