如何在xslt中将属性值作为整数输出?

如何在xslt中将属性值作为整数输出?,xslt,Xslt,我的输入XML如下所示: <item row="4" column="1" colspan="3"> <widget class="QLineEdit" name="lineEdit_15"/> </item> <item row="2" column="12">

我的输入XML如下所示:

     <item row="4" column="1" colspan="3">
      <widget class="QLineEdit" name="lineEdit_15"/>
     </item>

     <item row="2" column="12">
      <widget class="QLineEdit" name="lineEdit_22"/>
     </item>

My创建了一个变量,如下所示:

    <xsl:variable name="span" select=item/@colspan"/>

$span
的值要么是属性节点,要么是空节点集/序列。(也可以是一组多属性节点,具体取决于您的输入)

既然您提到了
xs:integer
,我假设您使用的是2.0+,因为XPath1.0中没有这种类型

将值转换为整数的明显方法是
xs:integer($span)
,但这可能不是您想要的转换。如果该属性存在且具有整数形式,则它将起作用;如果属性值为“3.14”,它也会做一些事情——也许这不是您想要的


如果希望变量在缺少
@colspan
时采用默认值1,惯用的方法是
select=“xs:integer((item/@colspan,1)[1])”

不清楚您在哪个上下文中使用
请说明您使用的XSLT版本。