惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Snowwolf

新建用户无法通过SecureSRT进行ssh登录到远程linux (zz) 【转】产品描述英文专用术语 互联网/移动互联网小团队创业 第一集 汪华(zz) ff下链接没有.click的处理 - Snowwolf - 博客园 XSLT教程 几点Session使用的经验(转载) 极品家丁经典语录 SQL开发中容易忽视的一些小地方(zz) 如何激发团队激情(zz) Paul Graham:写给创业者的13句话 你是怎样给下属分配工作 如何让客户找你?(zz) 放下!才能走的更远!!(zz) 赢利能力的魔鬼(zz) 创业心得(zz) 滋阴保肾8大宝贝 十省有线网络公司结盟区域网:打造国干网 速算 js四舍五入
自定义模型中“文件”字段的运用
Snowwolf · 2010-07-16 · via 博客园 - Snowwolf

自定义模型中“文件”字段的运用

复习几个 xslt 字符串 函数

contains 函数

检查第一个参数字符串是否包含第二个参数字符串。

boolean contains(str1, str2)

示例

以下函数调用返回 true:

contains("abcd","ab")

string-length 函数

返回字符串中的字符数。

number string-length(string)

示例

如果忽略该参数,将返回上下文节点的字符串值中的字符数。

以下函数调用返回 5:

string-length("ab cd")

以下函数调用返回 4:

string-length("abcd")

substring 函数

返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。

string substring(string, number, number)

示例

以下函数调用返回“2345”:

substring("12345",2) 

 以下函数调用返回“234”:

substring("12345",2,3) 

substring-after 函数

返回第一个参数字符串中在第一次出现第二个参数字符串之后的子字符串,如果第一个参数字符串中不包含第二个参数字符串,则返回空字符串。

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")

substring-before 函数

返回第一个参数字符串中在第一次出现第二个参数字符串之前的子字符串,如果第一个参数字符串中不包含第二个参数字符串,则返回空字符串。

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&amp;id=***">ab.doc</a>
</li>
<li>
<a href="/Common/ShowDownloadUrl.aspx?urlid=1&amp;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>

posted on 2010-07-16 14:52  Snowwolf  阅读(415)  评论()    收藏  举报