xslt中的字符串和数学运算

时间:2013-03-26 18:26:57

标签: xslt

我希望使用XSLT修复一些表。我需要使用Colspan属性,但我要转换的代码使用namestnameend

示例:

<entry namest="col1" nameend="col3"> 

我需要将其转换为<td colspan="3">。我考虑设置变量,然后使用substring($var,4,1)来获取col3 / col1末尾的数字,然后通过从nameend中的数字中减去namest中的数字然后添加一个但是它没有数学数学不行。

1 个答案:

答案 0 :(得分:1)

如果entry是上下文节点,则以下表达式返回“col”值的差值加上应该是您要查找的colspan值的值:

substring(@nameend, 4) - substring(@namest, 4) + 1

substring(@attr, 4)从第四个字符开始直到结束返回@attr的子字符串。子字符串由减号运算符隐式转换为数字。

使用libxslt的xmllint

测试表达式
$ echo '<entry namest="col1" nameend="col3"/>' >so.xml
$ xmllint --shell so.xml 
/ > cd entry
entry > xpath substring(@nameend, 4) - substring(@namest, 4) + 1
Object is a number : 3