XSLT 连接字符串
我有以下
<R N="14" MIME="application/pdf">
<RK>7</RK>
<FS NAME="date" VALUE="2007-11-01" />
<MT N="Abstract" V="Lorem Ipsum is simply dummy text of the printing " />
<MT N="Abstract1" V="and typesetting industry. Lorem Ipsum has been the industry's standard " />
<MT N="Abstract2" V="dummy text ever since the 1500s, when an unknown printer took a galley" />
<MT N="CreationDate" V="D:20070730173554+05'30'" />
<MT N="Creator" V="PageMaker 6.5" />
<MT N="Producer" V="Acrobat Distiller 8.0.0 (Windows)" />
<MT N="ModDate" V="D:20071024091122+05'30'" />
<S>
<b>...</b> handling / storage. Operational reactor physics plays an important role in<br/>
efficient, smooth and safe operation of <b>nuclear reactor</b>. In <b>...</b>
</S>
<LANG>en</LANG>
</R>
使用 XSLT 的 XML,我需要连接 Abstract、Abstract1、Abstract2、Abstract3... 等的值。
我的 XSLT 是这样的
<xsl:template match="R">
<xsl:choose>
<xsl:when test="MT[@N = 'Abstract' and @V != '']">
<xsl:call-template name="reformat_keyword">
<xsl:with-param name="orig_string" select="concat(MT[@N='Abstract']/@V,MT[@N='Abstract1']/@V,MT[@N='Abstract2']/@V)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$show_res_snippet != '0'">
<xsl:call-template name="reformat_keyword">
<xsl:with-param name="orig_string" select="S" />
</xsl:call-template>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
我需要一个通用函数而不是静态连接。
I have the following XML
<R N="14" MIME="application/pdf">
<RK>7</RK>
<FS NAME="date" VALUE="2007-11-01" />
<MT N="Abstract" V="Lorem Ipsum is simply dummy text of the printing " />
<MT N="Abstract1" V="and typesetting industry. Lorem Ipsum has been the industry's standard " />
<MT N="Abstract2" V="dummy text ever since the 1500s, when an unknown printer took a galley" />
<MT N="CreationDate" V="D:20070730173554+05'30'" />
<MT N="Creator" V="PageMaker 6.5" />
<MT N="Producer" V="Acrobat Distiller 8.0.0 (Windows)" />
<MT N="ModDate" V="D:20071024091122+05'30'" />
<S>
<b>...</b> handling / storage. Operational reactor physics plays an important role in<br/>
efficient, smooth and safe operation of <b>nuclear reactor</b>. In <b>...</b>
</S>
<LANG>en</LANG>
</R>
Using XSLT, I need to concatenate the values of Abstract, Abstract1, Abstract2, Abstract3... so on.
My XSLT is something like this
<xsl:template match="R">
<xsl:choose>
<xsl:when test="MT[@N = 'Abstract' and @V != '']">
<xsl:call-template name="reformat_keyword">
<xsl:with-param name="orig_string" select="concat(MT[@N='Abstract']/@V,MT[@N='Abstract1']/@V,MT[@N='Abstract2']/@V)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$show_res_snippet != '0'">
<xsl:call-template name="reformat_keyword">
<xsl:with-param name="orig_string" select="S" />
</xsl:call-template>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Instead of the static concatenation, I need a generic function.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 XSLT 2.0 中,它是
在 XSLT 1.0 中,它是
In XSLT 2.0, it's
In XSLT 1.0, it's
如果我猜对了,你可以像
其他地方一样做一些事情:(
未经测试,可能有错误)。
If I get you right, you can do something like
elsewhere:
(not tested, may have errors).