XPath语法

XPath语法,第1张

XPath的语法    我们在前面已经提到过 XPath是用来帮助XSLT在XML源文档中查找定位信息的语言 在实际使用过程中 XPath和XSLT总是混在一起使用 在上面一章的语法例子中我们已经有使用到XPath的语法 只是没有明确点出 但W C将它们分成两个标准 所以我们也将它们拆成两章来讲解

XPath的语法

当前位置    寻址 *** 作    运算符    功能函数

当前位置

当我们使用XSLT处理XML源文档是 我们用Context来表示当前正在被模板处理的节点位置 比如xsl:template match= / 语句中表示Context在文档的根(root)节点 我不知道如何准确的翻译Context这个词 它类似于C语言里的指针 表示程序当前运行的位置 理解Context对于正确处理XSL模板非常重要 当您的XSL模板输出的文档和您想要的不一样 最先应该分析的就是Context在哪里     Location Paths是用于设定你想要寻找的Context节点位置 就类似DOS的目录命令 我们看个例子

<xsl:for each select= child::PEOPLE/descendant::PERSON >

其中child::PEOPLE/descendant::PERSON就是XPath语法 这个表达式就是一个Location Paths 代码说明要显示所有PEOPLE元素的子元素和所有PERSON元素的子元素 通常我们会采用更简单的写法

<xsl:for each select= PEOPLE//PERSON >

我们来解释path的两种表示方法 / 和 //     / 是表示当前文档的节点 类似DOS目录分割符 例如 /PEOPLE表示选择根节点下的PEOPLE元素 PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素     // 则表示当前文档所有的节点 类似查看整个目录 例如 //PEOPLE表示选择文档中所有的PEOPLE元素 无论它在什么层次 PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素 无论它的层次多深

寻址 *** 作

Axis和Predicate是XPath语法中对Location Paths进行定位 *** 作的语法 具体的用法列表如下

Axis语法表        表达式 简写 说明        self 选择当前的节点     例子 :    <TD><xsl:value of select= /></TD>    代码表示在当前位置插入当前的节点包含的文本(text)值         parent 选择当前节点的父节点         attribute @ 选择一个元素的所有属性     例子:    <TD><xsl:value of select= @PERSONID /></TD>    选择PERSON元素的所有属性         child 选择当前节点的所有子元素         ancestor 选择当前节点的所有父元素(包括父元素的父元素 类推)   

Axis帮助我们选择当前节点周围所有的节点 而Predicate则用来定位当前节点内部的元素 表示方法为方括号[]中加表达式 [ Expression ] 具体举例如下:

PERSON[position()= ]    这句代码表示寻找第二个 PERSON 元素

PERSON[starts with(name B )]    这句代码表示寻找所有名称以 B 开头的PERSON元素

运算符

这一节介绍XPath的运算符(Expressions) 列表如下         运算符 说明        and or 就是普通意义的and or        = 等于        != 不等于        > >= 大于 大于等于        < <= 小于 小于等于 注意 在XSL文件中 <符号要用< 表示        div 加减乘除        mod 取模        | 两个节点一起计算   

功能函数(Functions)

在XPath里有很多功能函数可以帮助我们精确寻找需要的节点

count()功能    作用 统计计数 返回符合条件的节点的个数     举例 <p><xsl:value of select= count(PERSON[name=tom]) /></p>    说明 代码的用途是显示PERSON元素中姓名属性值为tom有几个

number()功能    作用 将属性的值中的文本转换为数值     举例 <p>The number is: <xsl:value of select= number(book/price) /></p>    说明 代码的用途是显示书的价格

substring() 功能    语法 substring(value start length)    作用 截取字符串     举例 <p><xsl:value of select= substring(name ) /></p>    说明 代码的用途是截取name元素的值 从第一个字母开始显示到第三个

sum()功能    作用 求和     举例 <p>Total Price = <xsl:value of select= sum(//price) /></p>    说明 代码的用途是计算所有价格的和

上面这些功能只是XPath语法中的一部分 还有大量的功能函数没有介绍 而且目前XPath的语法仍然在不断发展中 通过这些函数我们可以实现更加复杂的查询和 *** 作

lishixinzhi/Article/program/ASP/201311/21862

用EXCEL表格和软件打开xml文件的方法具体步骤介绍

XML是Extensible Markup Language的简写,一种扩展性标识语言。

现在教你打开xml文件的方法和软件。

呵,其实最简单的就是用EXCEL表格打开了。。

也可以用Netscape 6来打开XML文档,并且也可以用右键选择“察看源文件”

当你用Netscape 6打开XML文档后,

浏览器将用带颜色的代码显示根元素和子元素。

如何在 Excel 中打开文件

在 Excel 中打开 XML 文件时,系统将提示您选择下列方法之一来导入 XML 数据:作为 XML 列表

作为只读工作簿

使用“XML 源”任务窗格

作为 XML 列表打开文件

当打开 XML 源时,Excel 会查找 XML 样式表 (XSL) 的标记。XSL 说明数据的显示方式。如果存在相应的标记,Excel 将会提示您选择是否应用样式表。如果选择应用 XSL,则 XSL 将指示数据的'显示方式;在这种情况下,本文中这一部分的其余信息将不再适用。

如果没有 XSL 标记,您将收到以下消息:

指定的 XML 源没有引用架构。Excel 将基于 XML 源数据创建架构。

然后,Excel 将导入 XML 源中的数据。如果 XML 数据在一个元素内包含重复的字段,Excel 会将数据分布到多个行上。每一行都包含一个唯一的数据集。这可能会导致 XML 中的小数据集在 Excel 中显示为很多行。

作为只读工作簿打开文件

如果选择作为只读工作簿打开 XML 源文档,则元素的第一个标记将被用作标题并被放入单元格 A1 中。其余的标记依照字母顺序排序,并放入第二行。当作为只读工作簿打开上文中的天气报告示例时,其中的数据将被排列到下面的列标题列表中: /area/city

/area/country

/area/region

/area/state

/date

/measurements/h-index

/measurements/humidity

/measurements/skies

/measurements/temperature

/measurements/uv-index

/measurements isibility

/measurements/wind/direction

/measurements/wind/windspeed

/time

如果有一个数据集,则每列的数据都放在电子表格的第三行上。如果 XML 数据在一个元素内包含重复的字段,Excel 会将数据分布到多个行上。每一行都包含一个唯一的数据集。这可能会导致 XML 中的小数据集在 Excel 中显示为很多行。

使用“XML 源”任务窗格

XML 数据文件的架构显示在“XML 源”任务窗格中。然后,可以将架构元素拖到工作表中,以将这些元素映射到工作表。

如果打开的是未引用架构的 XML 数据文件,则 Excel 将推断 XML 数据文件的架构。 ;

七 XSL 的控制语句

条件语句if then

XSL同样还有条件语句(呵呵~~好厉害吧 象程序语言一样) 具体的语法是增加一个xsl:if元素 类似这样

<xsl:if match= [ARTIST= Bob Dylan ] >

some output

</xsl:if>

上面的例子改写成为  

<xml version= >

<xsl:stylesheet xmlns:xsl= xsl >

<xsl:template match= / >

<>

<body>

<table border= bgcolor= yellow >

<tr>

<th>Title</th>

<th>Artist</th>

</tr>

<xsl:for each select= CATALOG/CD >

<xsl:if match= [ARTIST= Bob Dylan ] >

<tr>

<td><xsl:value of select= TITLE /></td>

<td><xsl:value of select= ARTIST /></td>

</tr>

</xsl:if>

</xsl:for each>

</table>

</body>

</>

</xsl:template>

</xsl:stylesheet>

XSL 的Choose

choose的用途是出现多个条件 给出不同显示结果 具体的语法是增加一组xsl:choose xsl:when xsl:otherwise元素

 <xsl:choose>

<xsl:when match= [ARTIST= Bob Dylan ] >

some code

</xsl:when>

<xsl:otherwise>

some code

</xsl:otherwise>

</xsl:choose>

上面的例子改写成为

<xml version= >

<xsl:stylesheet xmlns:xsl= xsl >

<xsl:template match= / >

<>

<body>

<table border= bgcolor= yellow >

<tr>

<th>Title</th>

<th>Artist</th>

</tr>

<xsl:for each select= CATALOG/CD >

<tr>

<td><xsl:value of select= TITLE /></td>

<xsl:choose>

<xsl:when match= [ARTIST= Bob Dylan ] >

<td bgcolor= #ff ><xsl:value of select= ARTIST /></td>

</xsl:when>

<xsl:otherwise>

<td><xsl:value of select= ARTIST /></td>

</xsl:otherwise>

</xsl:choose>

</tr>

</xsl:for each>

</table>

</body>

</>

</xsl:template>

</xsl:stylesheet>

lishixinzhi/Article/program/net/201311/12197

因为XML将内容和表现分离, Web建造者需要新的方法来控制设计, 显示和输出 style sheet 是问题的答案 目前, 有三种可用于XML的 样式表:

Cascading style Sheets (CSS)

Extensible style Language (XSL)

Document style Semantics and Specification Language (DSSSL)

如果50版的浏览器支持XML, XML对现有的CSS标准的支持将会处理大部分基本的风格和页面问题 但是CSS对于专业出版商可能不够强大 所以, 另一端存在着DSSSL, 一个在使用SGML的高端出版商中流行的ISO (国际标准组织)标准 然而, DSSSL是复杂的, 它处理的打印文档管理在Web上很少有用

现在剩下了XSL,特别为XML而写的样式表XSL目前上交给了W3C作为一个建议标准,其中的XSL转换部分(XSLT)已经于1999年11月成为正式的规范 它给了Web开发者和用户较HTML更多的表现灵活性 例如, HTML的<H2>标识符在所有浏览器上的表现是基本一样的, 但是XSL让开发者指定他们的页面元素如何表现(尽管用户可以在个人设置中重载它)

XSL较CSS更强大, 因为它使Web建造者创建可以动态改变其表现的文档 例如, 你可以包含这样的程序语句, "如果一个XML元素的属性为数值10, 显示为绿色, 否则为黑色" 或者你可以将"仅供内部使用"作为属性给一个段落标上, 这样它在某些情况下不会出现 XSL被设计用于脚本语言如javascript

分类: 电脑/网络

问题描述:

请大虾详细告诉我

解析:

XSLT的英文标准名称为eXtensible Stylesheet Language Transformation。根据W3C的规范说明书(w3/TR/xslt),最早设计XSLT的用意是帮助XML文档(document)转换为其它文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式,更全面的定义应该是:

XSLT是一种用来转换XML文档结构的语言。

--------------------------------------------------------

CSS同样可以格式化XML文档,那么有了CSS为什么还需要XSLT呢?因为CSS虽然能够很好的控制输出的样式,比如色彩,字体,大小等,但是它有严重的局限性,就是:

(1) CSS不能重新排序文档中的元素;

(2) CSS不能判断和控制哪个元素被显示,哪个不被显示;

(3) CSS不能统计计算元素中的数据;

换句话说,CSS只适合用于输出比较固定的最终文档。CSS的优点是简洁,消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗内存比较多。

因此,我们常常将它们结合起来使用,比如在服务器端用XSLT处理文档,在客户端用CSS来控制显示。可以减少响应时间。

以上就是关于XPath语法全部的内容,包括:XPath语法、用EXCEL表格和软件打开xml文件的方法具体步骤介绍、XSL的控制语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9666411.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存