xslt - 禁用输出转义 ="yes-no"不起作用并在 Sharepoint URL 中输出两次

标签 xslt sharepoint-2010 escaping

我有一个自定义内容类型,其中包含 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;amp;bookmark=224;GwAAAACJBDEwMDE=**&amp;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&amp;bookmark=224;GwAAAACJBDEwMDE=&amp;mode=Create "
/>
</t>

产生想要的正确结果 :
<a href="dynamicsnav://servername:7041/ServiceName/CRONUS Italia S.p.A./runpage?page=30&amp;bookmark=224;GwAAAACJBDEwMDE=&amp;mode=Create ">SomeLinkText</a>

关于xslt - 禁用输出转义 ="yes-no"不起作用并在 Sharepoint URL 中输出两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944513/

相关文章:

sharepoint-2010 - 错误:在AD​​中添加用户时,“错误:用户不存在或不是唯一的”

java - Mapreduce 写入名称中有空格的目录

java - 将 XML 嵌入到 SOAP 请求的 CDATA 部分时出现解析错误

c# - 在浏览器中打开大型 aspx 文件时编译错误 CS1647

.net - 如何在 SharePoint 2010 沙盒化 Visual WebPart 上创建可编辑属性

sharepoint - 以编程方式创建/维护 SharePoint 快速启动菜单的最佳方法

PHP 正则表达式删除多个 ?-marks

java - 使用 XSLT 从指定文件中选择值

python - 解析 XSL 上同名的子元素

java - XSLT 转换,如果源中不存在则输出元素,如果存在则保持原样