xslt concat变量和字符串

时间:2015-02-09 23:31:31

标签: xml xslt

我正在寻找一种更简单的方法来连接变量和字符串值。目前我有以下内容:

<xsl:for-each select="$var_asset_name">
    <xsl:attribute name="Asset_Name" select="fn:concat(fn:string(.), '_title')"/>
</xsl:for-each>

进一步定义$ var_asset_name。这有效,但我想知道是否有更简单的方法来实现相同的结果。我试过了

<xsl:attribute name="Asset_Name" select="fn:concat($var_asset_name, '_title')"/>

但它不起作用(错误:提供的序列(&#39; 2&#39; item(s))出现错误,以匹配序列类型xs:anyAtomicType(&#39;零或一个&#39; ;))

提前致谢。

2 个答案:

答案 0 :(得分:0)

使用此输入:

<root/>

以下XSLT(使用属性值模板):

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="var_asset_name">stack</xsl:variable>
<xsl:template match="root">
    <root Asset_Name="{$var_asset_name}_overflow"/>
</xsl:template>
</xsl:stylesheet>

会产生:

<?xml version="1.0" encoding="utf-8"?>
<root Asset_Name="stack_overflow"/>

我希望您想要一种更简单的方法来创建属性。

答案 1 :(得分:0)

目前,所有XPath版本都具有字符串连接功能,而不是字符串连接运算符:XPath 1.0XPath 2.0XPath 3.1