处理XML元素中的文本

时间:2019-02-15 19:51:43

标签: xml xslt

在我的XSL文档中,我有这个:

<xsl:if test="notification_data/incoming_request/note != ''">
<tr>
<td><h2><b>@@request_note@@: </b> <xsl:value-of select="notification_data/incoming_request/note"/></h2></td>
</tr>
</xsl:if>

其中XML note元素中的文本实际上是3个被卡在一起的数据,以||分隔。这是我们的供应商以这种方式来的。

<note>||Christie, James||1234567||Lutheran College</note>

在同一个XSL文档中,是否有一种方法可以解析出这三段数据并选择在信函上打印的内容?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

非常感谢!我使用的是XSLT 1.0,因此我使用嵌套的substring-before和substring-after来解决此问题。对于任何有兴趣的人:

<xsl:value-of select="substring-before(substring-after(notification_data/incoming_request/note,'||'),'||')"/> - <xsl:value-of select="substring-after(substring-after(substring-after(notification_data/incoming_request/note,'||'),'||'),'||')"/>

结果:

Christie,James - Lutheran College 

这就是我们要打印的内容。是的,数据元素的顺序将始终相同。再次感谢!