Xml xsl:显示concat变量的结果,每个值之间带有逗号
我有以下变量:Xml xsl:显示concat变量的结果,每个值之间带有逗号,xml,xslt,tei,Xml,Xslt,Tei,我有以下变量: <?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"/> </
<?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>
当前输出为:2msg3fsg
但我想要:2msg,3fsg
我尝试了几种解决方案,例如,每个元素都有一个变量,而不是所有TEI
元素或,
都有一个变量。但它不起作用
提前,谢谢你的忠告 使用一个变量,该变量是串接值或串接值的字符串序列:
<xsl:variable name="values" as="xs:string*" select="//gramGrp/string-join((per/@value, gen/@value, number/@value), '')"/>
<xsl:value-of select="$values" separator=", "/>
请参阅。太好了!非常感谢。因为我之前有其他元素
,所以我在//gramGrp
之前添加了*
。它工作得很好!我不习惯xs:string
,因为我是xsl
的新手。
<xsl:variable name="values" as="xs:string*" select="//gramGrp/string-join((per/@value, gen/@value, number/@value), '')"/>
<xsl:value-of select="$values" separator=", "/>