- 浏览: 71434 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
jinbo0120:
受教了,我还一直存在疑问呢,原来是1.5开始使用的...看来我 ...
5.0for循环 -
persistC:
1、到底在哪用cascade=&q ...
hibernate.hbm.xml总结 -
duanyong:
看到xml就烦。不知道为什么。嘿嘿。
hibernate.hbm.xml总结
<xsl:analyze-string>是XSLT2.0新增的指令,语法:
<xsl:analyze-string select="xpathExpression" regex="regExpression" flags="flag">
该指令的主要用途为分析字符串。select属性用于指定要分析的字符串,即inputString。
regex指定分析规则--正则表达式。
<xsl:analyze-string>可能包含如下内容元素(子元素):
1,<xsl:matching-substring>
<!---some instruction-->
</xsl:matching-substing>
用于指定符合正则表达式的子字符串所要执行的动作。
2,<xsl:non-matching-substring>
<!---some instruction-->
</xsl:non-matching-substring>
用于指定不符合正则表达式的子字符串所要执行的动作。
<xsl:analyze-string>的执行过程为:首先将输入字符串按照正则表达式分割成若干子字符串。然后依次对每个子字符串进行操作:如果子字符串符合正则表达式,那么就执行<xsl:matching-substring>指令(如果存在该指令的话);如果不符合正则表达式,那么就执行<xsl:non-matching-substring>指令(如果存在该指令的话)。
举例来说
<xsl:analyze-string select="abcd1234efg7890" regex="[a-z]+">
<xsl:matching-substring>
<!---some instructions-->
</xsl:matching-substring>
<xsl:non-matching-substring>
<!---some instructions-->
</xsl:non-matching-substring>
</xsl:analyze-string>
首先输入字符串按正则表示被分为四个子字符串--abcd,1234,efg,7890。
接着执行的指令为abcd(matching-instruction)-->1234(non-matching-instruction)-->efg(matching-instruction)-->7890(non-matching-instruction)。
下面举个具体的例子。
XML源文件:
<?xml version="1.0"?>
<root>
<branch>2500ppoabcuv12405tyuvirk</branch>
</root>
XSLT文件:
<root>
<branch>2500ppoabcuv12405tyuvirk</branch>
</root>
XSLT文件:
<?xml version='1.0'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="regex" select="'\d{4}'"/>
<xsl:analyze-string select="root/branch" regex="{$regex}">
<xsl:matching-substring>
<digits><xsl:value-of select="."/></digits>
</xsl:matching-substring>
<xsl:non-matching-substring>
<word><xsl:value-of select="."/></word>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="regex" select="'\d{4}'"/>
<xsl:analyze-string select="root/branch" regex="{$regex}">
<xsl:matching-substring>
<digits><xsl:value-of select="."/></digits>
</xsl:matching-substring>
<xsl:non-matching-substring>
<word><xsl:value-of select="."/></word>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
转换结果:
<digits>2500</digits>
<word>ppoabcuv</word>
<digits>1240</digits>
<word>5tyuvirk</word>
如果将regex的属性直接写成:regex="\d{4}",我们得到的输出结果是:
<word>2500ppoabcuv1</word>
<digits>24</digits>
<word>05tyuvirk</word>
跟正确的结果不符,这是为什么呢?
这是因为在一个非xpath expression中大括号(curly brackets)括起来的内容表示xpath expression。所以,直接写成regex="\d{4}"时,真实的正则表达式变成了\d4。
要想得到\d{4},正则表达式需要写成regex="\d{{4}}"。
在XSLT中一般认为存在两种表示式,一种是xpath表达式,另一种是非xpath表达式。
用select属性指定的表达式一般是xpath表达式。例如:select="root/branch",表示root下的所有branch节点;但href="root/branch"则表示字符串root/branch。
在xpath表达式中不能使用大括号(curly brackets)。
在非xpath表达式中则需要使用大括号(curly brackets)来引用xpath表达式。
大括号在非xpath表达式中的使用一般有如下几种情况:
1,引用节点或属性
{a},{@a}
2,引用变量
{$var}
3,引用字符串
{'#abc'}
4,引用数字
{1}
5,{{expression}}这种形式,表示{expression}字符串。
本文出自 51CTO.COM技术博客
发表评论
-
XSLT2.0---正则表达式
2009-06-06 16:27 942其实,正则表达式是XPATH2.0定义的,暂且放在XSLT里说 ... -
XSLT2.0----<xsl:variable>和<xsl:sequence>
2009-06-06 16:25 2938我们知道,<xsl:variable>可以定义变量 ... -
XSLT2.0----XPATH2.0序列
2009-06-06 16:24 926严格说来XPATH2.0和XSLT2.0并无直接联系,但是XP ... -
XSLT2.0----字符映射
2009-06-06 16:23 645XSLT2.0提供了字符映射功能。 对于特殊字符或特殊字符, ... -
XSLT2.0---临时结果树
2009-06-06 16:23 1001<xsl:variable>可不是新东西了,它 ... -
XSLT2.0---多文件输出
2009-06-06 16:22 935<xsl:result-document>指 ... -
XSLT2.0---分组
2009-06-06 16:20 1196看了些关于XSLT2.0的东西,先来总结一下分组吧。 &l ... -
xsl2.0正则
2009-06-05 11:46 1013<xsl:analyze-string>是XSLT ... -
XSLT 2.0 的新特性
2009-06-05 11:44 1507XSLT 2.0 的新特性 关键 ... -
XSLT Designer快速入门指南
2008-12-15 21:07 877目录 概述 配 ... -
XSLT document()函数在IE与Firefox中的区别
2008-12-15 21:07 905XSLT 中 document() 函数的作用是用来访问扩展X ... -
了解XSLT
2008-12-15 21:06 924什么是XSLT? XSLT的英文标准名称为eXtensibl ... -
XSL中count()的使用
2008-12-15 21:05 1016XSL中用count()来取得xml中某种节点的个数 list ... -
XSL学习心得-制作图像超链接
2008-12-15 21:04 758这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址 ... -
xslt的简单使用[xml-->html]
2008-12-15 21:03 989XSLT命令[xml格式转换] 1.循环 <xsl:f ... -
XSL中利用xsl:for-each时给每一项添加序号
2008-12-15 21:02 1688经常用for-each来循环读取XML中的某个节点集,但常常需 ... -
第四章:XPath的语法
2008-12-15 21:00 9444.XPath的语法 我们在前 ... -
第三章:XSLT的元素语法
2008-12-15 20:59 860通过前面两章的介绍,我们已经对XSLT的基本概念和它的转换过程 ... -
第二章:XSLT的实例
2008-12-15 20:59 9732. XSLT的实例 2.1 XSLT如何转换XML 2.2 ... -
第一章:XSLT的概念
2008-12-15 20:58 7671.XSLT的概念 1.1 什么是XSLT 1.2 为什么要 ...
相关推荐
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:math="http://exslt.org/math" xmlns:testng="http://testng.org"> <xsl:output method="html" indent="yes" omit...
-- 定义了输出文档的格式、<xsl:output> 是顶层元素(top-level element),必须是 <xsl:stylesheet> 或 <xsl:transform> 的子节点。定义输出的格式html、设置输出格式的 W3C 版本号(仅在 method=...
docx-xslt docx-xslt是一个 Python 库,用于为没有 XML 或 XSLT 编码的 ... ::= <command> <command> ::= <command> | <command> <command> ::= 'xsl' ':' <context> <xsl> <xsl> <context> ::= ':' <context> | <
如:<?xml version="1.0" encoding="gb2312" standalone="yes"?> 文档类型声明 规定元素的结构和属性列表的取值 如:<!DOCTYPE studinfo SYSTEM "studinfo.dtd"> 2)元素 空元素 <空元素标签名 属性=...
VALUE-OF select="$outputQty" />" hits="<XSL:VALUE-OF select="$hits" />" eliteLevel="<XSL:VALUE-OF select="$eliteLevel" />" linkOpenType="<XSL:VALUE-OF select="$linkOpenType" />" xslt="true" /} 32.{PE....
however, it is not structured as a tutorial, and there are other books on XSLT that provide a gentler approach for beginners.<br/><br/>The book does assume a basic knowledge of XML, HTML, and the ...
用TestNG测试后,自动会生成html的测试报告,不过相信大家都有感觉,... </xslt> </target> </project> 最后执行ant transform就可以了,之后在output目录下就可以看到一个index.html文件,打开它就是测试报告了。
XSLT 2.0 and XPath 2.0.PDF XSLT 2.0 and XPath 2.0.PDF
《XML XML Schema XSLT 2.0和XQuery开发详解》一书的示例源代码
xerces xalan taglibs-xsl是JSP中调用<xsl:apply xml="result.xml" xsl="result.xsl"></xsl:apply>的xslt标签所必须的包。 还需要另外一个文件到http://download.csdn.net/source/655756下载。
C# XML入门经典——C#编程人员必备的XML技能 <br>作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出版社:清华大学出版社 出版时间:2003年11月 <br>第1章 在C#中使用XML的原因<br><br>1.1 使用XML的原因<br...
书名:Professional Ajax<br>语言:English<br>格式:PDF<br><br>------------------------------------------------<br>How This Book is Structured <br>This book begins by providing background about the ...
Practical Mod Perl<br><br> Copyright <br> Preface <br> What You Need to Know <br> Who This Book Is For <br> How This Book Is Organized <br> Reference Sections <br> Filesystem Conventions <br> Apache ...
xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog> <Properties><Property Name="Solution" Value="CodematicDemo"> </Property><Property Name="解决方案文件" Value=...
xml-xslt-xsl-fo-dotnet 使用XML,XSLT,XSL-FO和在.NET中生成PDF文档的。 XML数据示例,XSL样式表和生成的PDF位于文件夹中(XML和XSL由)。 产生结果result.pdf : 建立解决方案 将source.xml和stylesheet.xsl...
— Relax NG的XSLT 2.0实现rng.xsl是用XSLT 2.0编写的Relax NG验证器和简化器。 它利用XSLT对XML和XSD基本原子类型的基本支持,支持XML语法和XSD数据类型。 rng.xsl不是流验证器,它适用于内存中的文档。 与大多数...
testng-xslt-1.1.2.zip
关于 X3-BLOG<br><br> X3-BLOG 是基于XML+XSLT+AJAX技术构建的开源多用户博客门户系统,服务器端采用当前最流行的动态网页开发语言之一ASP.NET(C#) 2.0编写,支持多种数据库,包括SQLSERVER2000\SQLSERVER2005\...
关于 X3-BLOG<br><br> X3-BLOG 是基于XML+XSLT+AJAX技术构建的开源多用户博客门户系统,服务器端采用当前最流行的动态网页开发语言ASP.NET(C#) <br><br>2.0编写,支持多种数据库,包括SQLSERVER2000\SQLSERVER2005\...
撒克逊语浏览器中的XSLT 2.0。历史笔记Saxon-CE是Saxonica首次涉足客户端(基于浏览器)XSLT支持,其中包括交互式XSLT扩展,旨在允许XSLT样式表通过修改HTML页面的内容来响应用户交互事件。 该产品是Saxon-Java代码...