我想结合使用for-each并插入" /"每个显示这是完整XML的例子:
<root>
<level1>
<level2 name="ex1">
<title>something1</title>
<country>
<value>Malaysia</value>
<value>Singapore</value>
<value>Brunei</value>
<value>Japan</value>
<value>China</value>
</country>
</level2>
<level2 name="ex2">
<title>something2</title>
<country>
<value>Brunei</value>
<value>Japan</value>
<value>China</value>
</country>
</level2>
</level1>
</root>
我尝试使用&#34; /&#34; (我直接关注每个人):
<xsl:for-each select="//level2">
Name : <xsl:value-of select="@name" /> <br />
Title : <xsl:value-of select="title" /> <br />
Country : <xsl:value-of select="concat(country, '/')" /> <br />
</br>
</xsl:for-each>
但是显示:
Name : ex1
Title : something1
Country : Malaysia Singapore Brunei Japan China /
Name : ex2
Title : something2
Country : Brunei Japan China /
但我希望它显示如下:
name : ex1
Title : something1
Country : Malaysia/Singapore/Brunei/Japan/China
name : ex2
Title : something2
Country : Brunei/Japan/China
答案 0 :(得分:0)
在XSLT 1.0中,您需要单独处理每个MariaDB [final]> delimiter ;
MariaDB [final]> insert into D_FACTURA values(5.00,10.00,1);
ERROR 1241 (21000): Operand should contain 1 column(s)
并检查位置以查看是否应输出country/value
。
尝试将/
更改为:
xsl:for-each
或者,您可以使用<xsl:for-each select="//level2">
Name : <xsl:value-of select="@name" />
Title : <xsl:value-of select="title" />
Country : <xsl:for-each select="country/value">
<xsl:if test="position() > 1">/</xsl:if>
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
(推送处理)代替xsl:for-each
(拉动处理)......
xsl:apply-templates
或拉/推两者的组合......
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="//level2"/>
</xsl:template>
<xsl:template match="level2">
<xsl:text>

Name : </xsl:text>
<xsl:value-of select="@name"/>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="title">
<xsl:text>
Title : </xsl:text>
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="country">
<xsl:text>
Country : </xsl:text>
<xsl:apply-templates select="value"/>
</xsl:template>
<xsl:template match="value">
<xsl:if test="position() > 1">
<xsl:text>/</xsl:text>
</xsl:if>
<xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>