自定义模型中“文件”字段的运用
检查第一个参数字符串是否包含第二个参数字符串。
boolean contains(str1, str2)
以下函数调用返回 true:
contains("abcd","ab")
返回字符串中的字符数。
number string-length(string)
以下函数调用返回 5:
string-length("ab cd")
以下函数调用返回 4:
string-length("abcd")
返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。
string substring(string, number, number)
以下函数调用返回“2345”:
substring("12345",2)
以下函数调用返回“234”:
substring("12345",2,3)
返回第一个参数字符串中在第一次出现第二个参数字符串之后的子字符串,如果第一个参数字符串中不包含第二个参数字符串,则返回空字符串。
string substring-after(string, string)
以下函数调用返回“04/01”:
substring-after("1999/04/01","/")
以下函数调用返回“99/04/01”:
substring-after("1999/04/01","9")
以下函数调用回空字符串“”:
substring-after("1999/04/01","2")
返回第一个参数字符串中在第一次出现第二个参数字符串之前的子字符串,如果第一个参数字符串中不包含第二个参数字符串,则返回空字符串。
string substring-after(string, string)
以下函数调用返回“1999”:
substring-before("1999/04/01","/")
substring-before("1999/04/01","2")
提取文件类型字段中-第一个文件
代码
<xsl:if test="string-length(DownloadUrl) != 0">
<xsl:attribute name="href">
<xsl:value-of select="pe:UpLoadDir()" />
<xsl:choose>
<xsl:when test="contains(DownloadUrl,'$$$') = 'true'">
<xsl:value-of select="substring-after(substring-before(DownloadUrl,'$$$'),'|')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring-after(DownloadUrl,'|')" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:if>
示例
DownloadUrl="下载地址1|ab.doc$$$下载地址2|cd.doc"
输出结果:ab.doc
DownloadUrl="下载地址1|cd.doc"
输出结果:cd.doc
提取文件类型字段-文件列表(系统自带函数)
代码
<xsl:value-of select="pe:ShowDownloadPath(/NewDataSet/Table/GeneralID,/NewDataSet/Table/DownloadUrl,pe:InstallDir())"/>
直接调用PE系统函数 ShowDownloadPath
示例
输出结果:
<li>
<a href="/Common/ShowDownloadUrl.aspx?urlid=0&id=***">ab.doc</a>
</li>
<li>
<a href="/Common/ShowDownloadUrl.aspx?urlid=1&id=***">cd.doc</a>
</li>
说明:该函数直接输出带 li 的列表样式
注意:使用该自定义文件类型字段名必须命名为“DownloadUrl”,否则会出错。
提取文件类型字段-文件列表(标签递归分解)
<xsl:template name="splitStr">
<xsl:param name="srcStr"/>
<xsl:choose>
<xsl:when test="contains($srcStr,'$$$')">
<li>
<a href="{pe:ConvertAbsolutePath(substring-after(substring-before($srcStr,'$$$'),'|'))}" target="_blank" >
<img src="{pe:ConvertAbsolutePath(substring-after(substring-before($srcStr,'$$$'),'|'))}" />
</a>
</li>
<xsl:variable name="dstStr" select="substring-after($srcStr,'$$$')" />
<xsl:choose>
<xsl:when test="contains($srcStr,'$$$')">
<xsl:call-template name="splitStr">
<xsl:with-param name="srcStr" select="$dstStr"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<li>
<a href="{pe:ConvertAbsolutePath(substring-after(substring-before($dstStr,'$$$'),'|'))}" target="_blank" >
<img src="{pe:ConvertAbsolutePath(substring-after(substring-before($dstStr,'$$$'),'|'))}" />
</a>
</li>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<li>
<a href="{pe:ConvertAbsolutePath(substring-after($srcStr,'|'))}" target="_blank" >
<img src="{pe:ConvertAbsolutePath(substring-after($srcStr,'|'))}" />
</a>
</li>
</xsl:otherwise>
</xsl:choose>
</xsl:template>