使用单个xsl模板,如何在@Name
字段上执行部分匹配?
现在,我正在使用custom Sharepoint fldtypes.xsl
file。
关于如何匹配多个名称有一个very nice answer here,但我希望匹配名称中包含“phone”的任何字段,例如:
这是我当前的模板,适用于完全匹配:
<!-- Turn Phone number fields into callto links-->
<xsl:template match="FieldRef[contains('|phone|Phone|', concat('|',@Name,'|') )]" mode="Text_body">
<xsl:param name="thisNode" select="."/>
<xsl:variable name="currentValue" select="$thisNode/@*[name()=current()/@Name]" />
<xsl:choose>
<xsl:when test="$currentValue=''">
<span></span>
</xsl:when>
<xsl:otherwise>
<a href="callto:{$currentValue}" class="calltolink" target=""><xsl:value-of select="$currentValue" /></a>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
答案 0 :(得分:2)
我只想猜测(因为你不会告诉我们你的输入)你想要匹配:
<xsl:template match="FieldRef[contains(@Name, 'Phone') or contains(@Name, 'phone')]">