如何使用XSL删除(或排除)“admissionDescription”XML字符串的前三个字母和后四个字母?
<xsl:if test="cost | admissionDescription">
<dt>Admission:</dt>
<dd>
<xsl:if test="cost"><xsl:value-of select="cost"/><br/></xsl:if>
<xsl:if test="admissionDescription"><xsl:value-of select="admissionDescription" disable-output-escaping="yes"/></xsl:if>
</dd>
</xsl:if>
答案 0 :(得分:3)
您可以使用XPath函数substring
和string-length
。这是一个简单的参考http://www.w3schools.com/xpath/xpath_functions.asp#string
<强>更新强>
您不需要fn
前缀。这是一个例子
substring(admissionDescription,4,string-length(admissionDescription)-7)
鉴于此测试输入
<xml>
<cost>5</cost>
<admissionDescription>123sometext4321</admissionDescription>
</xml>
申请你的XSL
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="xml">
<xsl:copy>
<xsl:if test="cost | admissionDescription">
<dt>Admission:</dt>
<dd>
<xsl:if test="cost"><xsl:value-of select="cost"/><br/></xsl:if>
<xsl:if test="admissionDescription"><xsl:value-of select="substring(admissionDescription,4,string-length(admissionDescription)-7)" disable-output-escaping="yes"/></xsl:if>
</dd>
</xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
您获得所需的输出
<xml>
<dt>Admission:</dt>
<dd>5
<br/>sometext</dd>
</xml>