xsl:显示 concat 变量的结果,每个值之间有逗号
xsl: display result of concat variable with comma between each value
我有以下变量:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE stylesheet [
<!ENTITY menu SYSTEM "verb.xml">
]>
<xsl:variable name="per">
<xsl:value-of select="*//per/@value | *//gen/@value | *//number/@value"/>
</xsl:variable>
<xsl:for-each select="concat($per, '')" >
<xsl:value-of select="translate(., ' ', '')" separator="," />
</xsl:for-each>
TEI-XML
内容:
<gramGrp n="1.1" ana="#actor-affixes">
<per ana="#s2" value="2"/>
<gen ana="#smasc" value="m"/>
<number ana="#ssing" value="sg"/>
</gramGrp>
<gramGrp n="1.2" ana="#actor-affixes">
<per ana="#s3" value="3"/>
<gen ana="#sfem" value="f"/>
<number ana="#ssing" value="sg"/>
</gramGrp>
<!-- gramGrp -->
当前输出为:2msg3fsg
但我想要:2msg,3fsg
我尝试了几种解决方案,例如,每个 element
一个变量,而不是所有 TEI
element
或 <xsl:if test="position() != last()"><xsl:value-of select="translate(., ' ', '')" /><xsl:text>, </xsl:text></xsl:if>
一个变量。但它不起作用...
提前感谢您的宝贵建议。
使用一个变量,该变量是串联值或字符串连接值的字符串序列:
<xsl:variable name="values" as="xs:string*" select="//gramGrp/string-join((per/@value, gen/@value, number/@value), '')"/>
<xsl:value-of select="$values" separator=", "/>
我有以下变量:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE stylesheet [
<!ENTITY menu SYSTEM "verb.xml">
]>
<xsl:variable name="per">
<xsl:value-of select="*//per/@value | *//gen/@value | *//number/@value"/>
</xsl:variable>
<xsl:for-each select="concat($per, '')" >
<xsl:value-of select="translate(., ' ', '')" separator="," />
</xsl:for-each>
TEI-XML
内容:
<gramGrp n="1.1" ana="#actor-affixes">
<per ana="#s2" value="2"/>
<gen ana="#smasc" value="m"/>
<number ana="#ssing" value="sg"/>
</gramGrp>
<gramGrp n="1.2" ana="#actor-affixes">
<per ana="#s3" value="3"/>
<gen ana="#sfem" value="f"/>
<number ana="#ssing" value="sg"/>
</gramGrp>
<!-- gramGrp -->
当前输出为:2msg3fsg
但我想要:2msg,3fsg
我尝试了几种解决方案,例如,每个 element
一个变量,而不是所有 TEI
element
或 <xsl:if test="position() != last()"><xsl:value-of select="translate(., ' ', '')" /><xsl:text>, </xsl:text></xsl:if>
一个变量。但它不起作用...
提前感谢您的宝贵建议。
使用一个变量,该变量是串联值或字符串连接值的字符串序列:
<xsl:variable name="values" as="xs:string*" select="//gramGrp/string-join((per/@value, gen/@value, number/@value), '')"/>
<xsl:value-of select="$values" separator=", "/>