[英]How do I declare then use a variable within a CDATA block?
我有一個 XSL/XML/JS 文件。 它是由不再在這里工作的人寫的,我通常只處理 SQL,所以我不知道如何實現我需要做的事情
我試圖將一些變量添加到現有 CDATA 塊內的文件中。 然后我在函數中使用變量。 但是,我嘗試了以下及其變體,但在應用程序(Dynamics AX)中不斷出現語法錯誤。 我是不是在做一些明顯錯誤的事情,無論是我如何聲明變量還是我如何使用它們? 這些是我所做的唯一更改,沒有這些更改,就沒有語法或任何其他問題/錯誤。
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:mxm="http://schemas.microsoft.com/dynamics/2008/01/documents/MxmServInterfaceOutboundAif"
xmlns:data="http://www.example.com/data" exclude-result-prefixes="xs xsi xsl">
<xsl:output method="text" encoding="UTF-8" indent="no" />
<msxsl:script language="JScript" implements-prefix="data">
<![CDATA[
//Minor Repairs email address
var MinorsEmail = xxx@domain.com
//Service Dept email address
var ServiceEmail = yyy@domain.com
//Major Repairs email address
var MajorsEmail = zzz@domain.com
//Select appropriate email to use
function EmailFrom(fault)
{
var type = fault.substr(0,2);
if (type == "MI")
{
var ret = MinorsEmail;
}
else
{
var ret = concat(ServiceEmail, "; ",MajorsEmail);
}
return ret;
}
編輯:在變量值周圍添加引號已經解決了部分問題。 現在的問題是 CONCAT 沒有按預期運行。 我現在收到以下錯誤:
Variable concat has not been declared
感謝@Martin Honnen,答案是為變量值添加引號,並使用 + 而不是 CONCAT:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:mxm="http://schemas.microsoft.com/dynamics/2008/01/documents/MxmServInterfaceOutboundAif"
xmlns:data="http://www.example.com/data" exclude-result-prefixes="xs xsi xsl">
<xsl:output method="text" encoding="UTF-8" indent="no" />
<msxsl:script language="JScript" implements-prefix="data">
<![CDATA[
//Minor Repairs email address
var MinorsEmail = "xxx@domain.com"
//Service Dept email address
var ServiceEmail = "yyy@domain.com"
//Major Repairs email address
var MajorsEmail = "zzz@domain.com"
//Select appropriate email to use
function EmailFrom(fault)
{
var type = fault.substr(0,2);
if (type == "MI")
{
var ret = MinorsEmail;
}
else
{
var ret = ServiceEmail + "; " + MajorsEmail;
}
return ret;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.