繁体   English   中英

如何将 xsl:value-of 结果嵌入到 CDATA 块中?

How can I embed a xsl:value-of result into a CDATA block?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我的 XSL 文件中有这个片段:

<script type="text/javascript">
    <![CDATA[
    function clearSelection() {
        if (document.getSelection) { // for all new browsers (IE9+, Chrome, Firefox)
            document.getSelection().removeAllRanges();
            document.getSelection().addRange(document.createRange());
            console.log("document.getSelection");
        } else if (window.getSelection) { // equals with the document.getSelection (MSDN info)
            if (window.getSelection().removeAllRanges) { // for all new browsers (IE9+, Chrome, Firefox)
                window.getSelection().removeAllRanges();
                window.getSelection().addRange(document.createRange());
                console.log("window.getSelection.removeAllRanges");
            } else if (window.getSelection().empty) { // Chrome supports this as well
                window.getSelection().empty();
                console.log("window.getSelection.empty");
            }
        } else if (document.selection) { // IE8-
            document.selection.empty();
            console.log("document.selection.empty");
        }
    }
    function CopyToClipboard(containerid) {
        clearSelection();
        if (document.selection) {
            var range = document.body.createTextRange();
            range.moveToElementText(document.getElementById(containerid));
            range.select().createTextRange();
            document.execCommand("copy");
        } else if (window.getSelection) {
            var range = document.createRange();
            range.selectNode(document.getElementById(containerid));
            window.getSelection().addRange(range);
            document.execCommand("copy");
            alert("The assignment slip has been copied, now paste into an email")
        }
    }
     ]]>
</script>

查看当前具有静态文本的alert行? 我想用以下值替换该文本字符串:

<xsl:value-of select="$Translations/msa:Translations/msa:*[local-name() = $LangCode]/msa:AlertText"/>


我只使用了CDATA因为我厌倦了 Visual Studio 重新格式化我的文档并将所有 Javascript 左对齐为一个白色块。

1 个回复

我通过简单地拆分我的CDATA设法做到了这一点:

<script type="text/javascript">
    <![CDATA[
    function clearSelection() {
        if (document.getSelection) { // for all new browsers (IE9+, Chrome, Firefox)
            document.getSelection().removeAllRanges();
            document.getSelection().addRange(document.createRange());
            console.log("document.getSelection");
        } else if (window.getSelection) { // equals with the document.getSelection (MSDN info)
            if (window.getSelection().removeAllRanges) { // for all new browsers (IE9+, Chrome, Firefox)
                window.getSelection().removeAllRanges();
                window.getSelection().addRange(document.createRange());
                console.log("window.getSelection.removeAllRanges");
            } else if (window.getSelection().empty) { // Chrome supports this as well
                window.getSelection().empty();
                console.log("window.getSelection.empty");
            }
        } else if (document.selection) { // IE8-
            document.selection.empty();
            console.log("document.selection.empty");
        }
    }
    function CopyToClipboard(containerid) {
        clearSelection();
        if (document.selection) {
            var range = document.body.createTextRange();
            range.moveToElementText(document.getElementById(containerid));
            range.select().createTextRange();
            document.execCommand("copy");
        } else if (window.getSelection) {
            var range = document.createRange();
            range.selectNode(document.getElementById(containerid));
            window.getSelection().addRange(range);
            document.execCommand("copy");
            alert("]]><xsl:value-of select="$Translations/msa:Translations/msa:*[local-name() = $LangCode]/msa:AlertText"/><![CDATA[")
        }
    }
     ]]>
</script>

请让我知道是否有更简单的方法。

1 将xsl:value-of…放入CDATA

我试图将通过迭代获得的值放入CDATA字段。 在XSLT中有可能这样做吗? 我的XML文件: 我的XSL文件: 因此,基本上我希望时间戳字段值位于CDATA字段中,以便最终基本上看起来像这样: 谢谢你的帮助! ...

2015-04-30 10:05:50 1 517   xml/ xslt
2 xsl:value-of在xml属性中的输出结果

我有一个XML输入文件,我正在尝试输出调用的结果,如: 成为一个属性。 我的问题是,因为我输出XML,XSL处理器不允许我写: 你是如何做到这一点的? ...

2008-11-12 12:59:18 2 17268   xslt
4 -1的结果

新手/初学者XSL用户在这里。 我的XSLT文档中有类似以下模板的内容: &lt;xsl:template name="getpoint"&gt; &lt;xsl:param name="nodenum"/&gt; &lt;xsl:value-of select="//nodeCoor ...

5 XSLT中忽略了xsl:value-of和xsl:for-each

我尝试使用XSLT从API XML响应文件中选择属性。 这是返回XML文件的请求:http: //zoekdienst.overheid.nl/sru/Search?version=1.2&amp;operation=searchRetrieve&amp;x-connection=oep&a ...

2017-11-19 12:19:11 1 72   xml/ xslt
7 如何将xsl:value-of用作fo:external-graphic的src?

我对XSL-FO相当陌生,而我正在尝试的方法可能不是解决此问题的理想方法。 我在本地目录中存储了一些图标。 我需要为fo:external-graphic的src动态使用这些图标的路径。 我尝试了subscriber-B-10路径的不同变体。 最后一个带有src='url ...

2018-12-21 09:46:59 1 60   xsl-fo
8 如何使xsl:value-of动态?

考虑一下, &lt;xsl:value-of select="@select"/&gt;输出/root/name 。 我想传递给value-of的求值表达式,因此它选择XML中的特定值。 我想使整个代码工作: XML: XSL: 所需输出: Foo 但是它什么 ...

9 筛选xsl:value-of属性

我目前有一个像这样的XML文档: 我的问题是,在遍历表和列时如何获取COMMENT的值? 我有: 但这是行不通的。 有什么建议吗? ...

2009-12-16 06:24:14 2 421   xml/ xslt
10 如何使xsl:value-of粗体

我有以下XSL代码: 我试图将&lt;xsl:value-of select="Address/Address2" /&gt;设为粗体。 我怎样才能做到这一点? 我尝试添加span ,但没有成功。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM