Disable-output-escaping = "yes-no" не работает и выводится дважды в URL Sharepoint - PullRequest
4 голосов
/ 20 января 2012

У меня есть пользовательский тип контента с настраиваемым полем типа TEXT.Это поле содержит URL-адрес, начинающийся с протокола DynamicsNav: поэтому 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>

Кто-то может мне помочь?

Ответы [ 3 ]

3 голосов
/ 20 января 2012

Вот простой способ сделать это, который не требует использования 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>
2 голосов
/ 26 января 2012

решено! Это работает

    <xsl:text disable-output-escaping="yes">&lt;a href="</xsl:text>
    <xsl:value-of select="$thisNode/@DSErpHyperlink" disable-output-escaping="yes" />
    <xsl:text disable-output-escaping="yes">" &gt;Open&lt;/a&gt;</xsl:text>

Вместо этого это не работает

    <a>
        <xsl:attribute name="href">
            <xsl:value-of select="$thisNode/@DSErpHyperlink" disable-output-escaping="yes" /> 
        </xsl:attribute>
        Open
    </a>

Поскольку отключение-вывод-экранирование не работает для атрибутов, я думаю

2 голосов
/ 21 января 2012

В спецификации указано, что disable-output-escaping игнорируется при записи узла атрибута.Как говорит Димитр, тебе это не нужно.

...