我有一个自定义内容类型,其中包含 TEXT 类型的自定义字段。
此字段包含以协议(protocol) DynamicsNav: 开头的 URL,因此 sharepoint 不允许将此字段作为标准“安全”超链接字段进行管理。
该字段通过 XSL 模板呈现,并由固定文本表示。
<xsl:template match="FieldRef[@Name='DSErpHyperlink']" mode="Text_body">
<xsl:param name="thisNode" select="."/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="$thisNode/@DSErpHyperlink" disable-output-escaping="yes" />
</xsl:attribute>
Open
</a>
字段 DSErpHyperlink 包含
dynamicsnav://servername:7041/ServiceName/CRONUS Italia S.p.A./runpage?page=30&bookmark=224;GwAAAACJBDEwMDE=&mode=Create
但是是用双功放渲染的;所以不起作用。
<a href="dynamicsnav://servername:7041/ServiceName/CRONUS Italia S.p.A./runpage?page=30&amp;bookmark=224;GwAAAACJBDEwMDE=**&amp;**mode=Create"> Open</a>
有人可以帮助我吗?
最佳答案
这是一个简单的方法,不需要使用 DOE :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="x">
<xsl:variable name="thisNode" select="."/>
<a href="{$thisNode/@DSErpHyperlink}">SomeLinkText</a>
</xsl:template>
</xsl:stylesheet>
当此转换应用于以下 XML 文档时 :
<t>
<x DSErpHyperlink=
"dynamicsnav://servername:7041/ServiceName/CRONUS Italia S.p.A./runpage?page=30&bookmark=224;GwAAAACJBDEwMDE=&mode=Create "
/>
</t>
产生想要的正确结果 :
<a href="dynamicsnav://servername:7041/ServiceName/CRONUS Italia S.p.A./runpage?page=30&bookmark=224;GwAAAACJBDEwMDE=&mode=Create ">SomeLinkText</a>
关于xslt - 禁用输出转义 ="yes-no"不起作用并在 Sharepoint URL 中输出两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944513/