XSLTsuppliesanumberoffunctions.
--------------------------------------------------------------------------------
XSLTFunctions
NameDescription
current()Returnsthecurrentnode
document()UsedtoaccessthenodesinanexternalXMLdocument
element-available()TestswhethertheelementspecifiedissupportedbytheXSLTprocessor
format-number()Convertsanumberintoastring
function-available()TestswhetherthefunctionspecifiedissupportedbytheXSLTprocessor
generate-id()Returnsastringvaluethatuniquelyidentifiesaspecifiednode
key()Returnsanode-setusingtheindexspecifiedbyanelement
system-property()Returnsthevalueofthesystemproperties
unparsed-entity-uri()ReturnstheURIofanunparsedentity
--------------------------------------------------------------------------------
InheritedXPathFunctions
NodeSetFunctions
NameDescriptionSyntax
count()返回结点个数number=count(node-set)
id()SelectselementsbytheiruniqueIDnode-set=id(value)
last()返回最后一个结点的需要number=last()
local-name()Returnsthelocalpartofanode.Anodeusuallyconsistsofaprefix,acolon,followedbythelocalnamestring=local-name(node)
name()返回一个结点的名称string=name(node)
namespace-uri()返回一个结点的名称空间uri=namespace-uri(node)
position()返回结点序号number=position()
StringFunctions
NameDescriptionSyntax&Example
concat()返回一个将N个字符串连接的值string=concat(val1,val2,..)
示例:
concat('The','','XML')
返回结果:'TheXML'
contains()如果val包含substr则返回truebool=contains(val,substr)
示例:
contains('XML','X')
返回结果:true
normalize-space()删除多余空格string=normalize-space(string)
示例:
normalize-space('TheXML')
返回结果:'TheXML'
starts-with()如果String以substr开始则返回truebool=starts-with(string,substr)
示例:
starts-with('XML','X')
返回结果:true
string()将数字转换为字符string(value)
示例:
string(314)
返回结果:'314'
string-length()返回一个字符串的长度number=string-length(string)
示例:
string-length('Beatles')
返回结果:7
substring()将string从start开始一直截取到第length位string=substring(string,start,length)
示例:
substring('Beatles',1,4)
返回结果:'Beat'
substring-after()将string以substr分割,选取最后一个string=substring-after(string,substr)
示例:
substring-after('12/10','/')
返回结果:'10'
substring-before()将string以substr分割,选取第一个string=substring-before(string,substr)
示例:
substring-before('12/10','/')
返回结果:'12'
translate()对字串进行替换操作string=translate(value,string1,string2)
示例:
translate('12:30',':','!')
返回结果:'12!30'
NumberFunctions
NameDescriptionSyntax&Example
ceiling()返回一个整数number=ceiling(number)
示例:
ceiling(3.14)
返回结果:4
floor()返回一个整数number=floor(number)
示例:
floor(3.14)
返回结果:3
number()将字符型转为数字number=number(value)
示例:
number('100')
返回结果:100
round()返回一个实数的四舍五入的整数值integer=round(number)
示例:
round(3.14)
返回结果:3
sum()返回结点值的和number=sum(nodeset)
示例:
sum(/cd/price)
BooleanFunctions
NameDescriptionSyntax&Example
boolean()ConvertsthevalueargumenttoBooleanandreturnstrueorfalsebool=boolean(value)
false()返回falsefalse()
示例:
number(false())
返回结果:0
lang()Returnstrueifthelanguageargumentmatchesthelanguageofthethexsl:langelement,otherwiseitreturnsfalsebool=lang(language)
not()Returnstrueiftheconditionargumentisfalse,andfalseiftheconditionargumentistruebool=not(condition)
示例:
not(false())
true()Returnstruetrue()
示例:
number(true())
返回结果:1
--------------------------------------------------------------------------------
Thecurrent()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thecurrent()functionreturnsanode-setthatcontainsonlythecurrentnode.Usuallythecurrentnodeandthecontextnodearethesame.
isequalto
However,thereisonedifference.LookatthefollowingXPathexpression:'catalog/cd'.Thisexpressionselectsthechildnodesofthecurrentnode,andthenitselectsthechildnodesofthenodes.Thismeansthatoneachstepofevaluation,the'.'hasadifferentmeaning.
Thefollowingline:
willprocessallcdelementsthathaveatitleattributewithvalueequaltothevalueofthecurrentnode'srefattribute.
Thisisdifferentfrom
thatwillprocessallcdelementsthathaveatitleattributeandarefattributewiththesamevalue.
--------------------------------------------------------------------------------
Syntax
node-setcurrent()
Example1
Currentnode:
IfyouhaveNetscape6orIE5orhigheryoucanview:theXMLfileandtheXSLfile.
ViewtheresultinNetscape6orIE6
Thedocument()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thedocument()functionisusedtoaccessnodesinanexternalXMLdocument.TheexternalXMLdocumentmustbevalidandparsable.
Onewaytousethisfunctionistolookupdatainanexternaldocument.ForexamplewewanttofindtheCelsiusvaluefromaFahrenheitvalueandwerefertoadocumentthatcontainssomepre-computedresults:
--------------------------------------------------------------------------------
Syntax
node-setdocument(object,node-set?)
Parameters
ParameterDescription
objectRequired.DefinesanURItoanexternalXMLdocument
node-setOptional.UsedtoresolverelativeURI
--------------------------------------------------------------------------------
Theelement-available()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Theelement-available()functionreturnsaBooleanvaluethatindicateswhethertheelementspecifiedissupportedbytheXSLTprocessor.
Thisfunctioncanonlybeusedtotestelementsthatcanoccurinatemplatebody.Theseelementsare:
xsl:apply-imports
xsl:apply-templates
xsl:attributes
xsl:call-template
xsl:choose
xsl:comment
xsl:copy
xsl:copy-of
xsl:element
xsl:fallback
xsl:for-each
xsl:if
xsl:message
xsl:number
xsl:processinginstruction
xsl:text
xsl:value-of
xsl:variable
--------------------------------------------------------------------------------
Syntax
booleanelement-available(string)
Parameters
ParameterDescription
stringRequired.Specifiestheelementtotest
Example1
xsl:commentissupported.
xsl:commentisnotsupported.
xsl:deleteissupported.
xsl:deleteisnotsupported.
IfyouhaveNetscape6orIE5orhigheryoucanview:theXSLfile.
ViewtheresultinNetscape6orIE6
--------------------------------------------------------------------------------
Theformat-number()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Theformat-number()functionisusedtoconvertanumberintoastring.
--------------------------------------------------------------------------------
Syntax
stringformat-number(number,format,[decimalformat])
Parameters
ParameterDescription
numberRequired.Specifiesthenumbertobeformatted
formatRequired.Specifiestheformatpattern.Herearesomeofthecharactersusedintheformattingpattern:
#(Denotesadigit.示例:####)
0(Denotesleadingandfollowingzeros.示例:0000.00)
.(Thepositionofthedecimalpoint示例:###.##)
,(Thegroupseparatorforthousands.示例:###,###.##)
%(Displaysthenumberasapercentage.示例:##%)
;(Patternseparator.Thefirstpatternwillbeusedforpositivenumbersandthesecondfornegativenumbers)
decimalformatOptional.
Example1
IfyouhaveNetscape6orIE5orhigheryoucanview:theXSLfile.
ViewtheresultinNetscape6orIE6
Thefunction-available()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thefunction-available()functionreturnsaBooleanvaluethatindicateswhetherthefunctionspecifiedissupportedbytheXSLTprocessor.
YoumaytesttheXSLTfunctionsandtheinheritedXPathfunctions.
--------------------------------------------------------------------------------
Syntax
booleanfunction-available(string)
Parameters
ParameterDescription
stringRequired.Specifiesthefunctiontotest
Example1
sum()issupported.
sum()isnotsupported.
current()issupported.
current()isnotsupported.
IfyouhaveNetscape6orIE5orhigheryoucanview:theXSLfile.
ViewtheresultinNetscape6orIE6
--------------------------------------------------------------------------------
Thegenerate-id()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thegenerate-id()functionreturnsastringvaluethatuniquelyidentifiesaspecifiednode.
Ifthenode-setspecifiedisempty,anemptystringisreturned.Ifyouomitthenode-setparameter,itdefaultstothecurrentnode.
--------------------------------------------------------------------------------
Syntax
stringgenerate-id(node-set?)
Parameters
ParameterDescription
node-setOptional.Specifiesonwhichnode-settogenerateauniqueid
Example1
Artists:
--------------------------------------------------------------------------------
Artist:
Title:
Price:
--------------------------------------------------------------------------------
IfyouhaveNetscape6orIE5orhigheryoucanview:theXMLfileandtheXSLfile.
ViewtheresultinNetscape6orIE6
--------------------------------------------------------------------------------
Thekey()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thekey()functionreturnsanode-setfromthedocument,usingtheindexspecifiedbyanelement.
--------------------------------------------------------------------------------
Syntax
node-setkey(string,object)
Parameters
ParameterDescription
stringRequired.Specifiesthenameofanxsl:keyelement
objectRequired.Astringtosearchfor
Example1
Title:
Artist:
Price:
IfyouhaveNetscape6orIE5orhigheryoucanview:theXMLfileandtheXSLfile.
ViewtheresultinNetscape6orIE6
--------------------------------------------------------------------------------
Thesystem-property()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Thesystem-property()functionreturnsthevalueofthesystempropertyspecifiedbythename.
SystempropertiesintheXSLTnamespace:
xsl:version-TheversionofXSLTimplementedbytheprocessor
xsl:vendor-ThevendoroftheXSLTprocessor
xsl:vendor-url-TheURLidentifyingthevendoroftheXSLTprocessor
--------------------------------------------------------------------------------
Syntax
objectsystem-property(string)
Parameters
ParameterDescription
stringRequired.Specifiesthesystempropertytoreturnthevalueof
Example1
Version:
Vendor:
VendorURL:
IfyouhaveNetscape6orIE5orhigheryoucanview:theXSLfile.
ViewtheresultinNetscape6orIE6
--------------------------------------------------------------------------------
Theunparsed-entity-uri()Function
--------------------------------------------------------------------------------
DefinitionandUsage
Theunparsed-entity-uri()functionreturnstheURIofanunparsedentity.Thenameoftheentitymustmatchthepassedargument.Ifthereisnosuchentityanemptystringisreturned.
IftheDTDcontainsthefollowingdeclaration:
thefollowingexpression:
unparsed-entity-uri('pic')
willreturntheURIforthefile'picture.jpg'.
--------------------------------------------------------------------------------
Syntax
stringunparsed-entity-uri(string)
Parameters
ParameterDescription
stringRequired.Specifiesthenameofanunparsedentity
相关推荐
XSLT的核心是XSL函数,它们提供了丰富的功能,使得XML数据的呈现方式具有极高的灵活性。以下我们将详细探讨如何利用XSL中的各种函数为XML显示提供灵活性。 1. **字符串处理函数**: - `string()`:将值转化为字符...
在XSL开发中,理解和掌握XSL函数、XSL元素以及XPath是至关重要的。下面将分别详细介绍这些知识点。 **XSL函数**: XSL函数是XSLT(XSL Transformations)的一部分,它们用于处理XML数据,进行计算、字符串操作、...
一本非常好的XSL入门教程, 分成以下几大单元 1.第一个XML文档 2.XSL入门 3.XSL模板与...运算符,关系与逻辑运算符,特殊字符等 7.XSL函数之一 8.脚本与XSL的结合及应用 9.XSL函数之二(DOM中对象的方法)
在XSLT(可扩展样式表语言转换)中,自定义函数可以极大地增强转换过程的灵活性和可扩展性。Xalan是Apache软件基金会的一个开源项目,它提供了Java实现的XSLT处理器。这篇博文主要讨论如何在Xalan中实现XSLT自定义...
4. **XSL函数库**:讲解XSL内置函数的使用,如字符串处理、数值计算和节点操作等。 5. **XPath表达式**:详细解释XPath语言,它是XSL中用于选取XML节点的关键工具。 6. **样式表结构**:探讨如何组织XSL样式表,...
在调用transform方法时,我们可以使用setParameter函数传递参数,这些参数可以在XSL模板中被引用,从而实现动态转换。 例如,假设我们有一个名为`contactsuseparm.xsl`的XSL样式表,它接受一个参数`contactType`来...
XPath函数参考.doc可能包含了XPath的各种内置函数,如字符串函数、数值函数、布尔函数、节点集函数等,这些函数能够帮助处理和操作XML数据。例如,`string()`用于获取节点的文本内容,`count()`计算节点集合的元素...
学习XSL不仅包括理解基本概念,还需要掌握如变量、函数、模板选择、流控制(如条件语句和循环)、以及如何导入和链接其他XSL样式表等高级特性。此外,熟悉XPath的语法和功能对于有效使用XSL至关重要,因为XPath是...
XSL由三部分组成:XSLT(XSL Transformations)、XPath(XML Path Language)和XSL-FO(XSL Formatting Objects)。在"XSL官方文档"中,这三部分都有详尽的定义和使用说明。 XSLT是XSL的主要部分,它定义了一种规则...
XSL,全称为eXtensible Stylesheet Language,是一种用于转换XML(eXtensible Markup Language)文档格式的语言。在“xsl学习”这个主题中,我们主要关注如何使用XSL进行数据转换和呈现。 XML是一种标记语言,常...
- **扩展函数的使用**:如`java:Capitalizer.capitalize($name)`所示,XSL支持使用外部语言(如Java)编写的扩展函数,这极大地增强了XSLT的功能,允许执行更复杂的字符串操作、日期格式化等任务。 - **性能考量**...
XPath支持路径表达式、函数、运算符等多种功能,使得开发者能够精确地选取XML数据。同时,熟悉XSL-FO可以帮助你更好地控制输出文档的视觉呈现。 总的来说,XSL教程涵盖了XML数据的转换、查询和格式化,是XML开发中...
这使得处理数组变得更加方便,提供了诸如`array:append`、`array:insert-at`等函数。 8. **XPath 2.0及更高版本** XPath 2.0引入了序列类型,这在某种程度上类似于数组。通过使用`()`来创建序列,我们可以实现类似...
在XML与XSL技术的结合应用中,对字符串进行分割处理是一项常见的需求,尤其是在需要将一个包含多个值的属性或元素拆分为多个单独元素时。本文将深入探讨如何利用XSLT中的`substring-before()`和`substring-after()`...
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而XSL(eXtensible Stylesheet Language)则是一种样式表语言,用于转换XML文档的结构和格式。本主题主要关注如何使用XSL解析XML...
7. **函数库(Function Library)**:XSLT提供了丰富的内置函数库,可以进行字符串处理、数值计算、节点集合操作等。 在最新的xsl示例中,你可能找到这些概念的实际应用,包括如何创建和应用模板,如何选择和合并...
XPath提供了丰富的函数库,可以对选取的节点进行计算、比较和字符串操作,方便在XSLT中引用和处理XML数据。 XSL-FO是用于创建页面布局和格式化的标准,它是XSL的一部分,但通常与XSLT分开讨论。它定义了一系列的...
XPath还提供了丰富的函数库,如`count()`、`contains()`等,方便在处理XML数据时进行各种操作。 XSL-FO(XSL Formatting Objects)是W3C制定的标准,用于描述文档的呈现方式,比如页面布局、字体样式等。它将XSLT...
7. **XSL的进阶话题**:可能涉及到XPath 2.0的新特性、XSLT 2.0/3.0的高级功能,如函数库的使用、流式处理等。 “Lecture08-Xpath.ppt”专门针对XPath,可能会进一步深入探讨: 1. **XPath的数据模型**:理解节点...
3. **变量与函数**:XSL支持变量和函数的使用,可以存储和操作数据,执行复杂的计算和逻辑判断。 4. **流式处理**:XSLT允许流式处理,即一次处理XML文档的一部分,而不是整个文档,这对于处理大型XML文件非常有用。...