如何解决如何声明然后在CDATA块中使用变量?
我有一个XSL / XML / JS文件。它是由一个不再在这里工作的人写的,我通常只处理sql,所以Im对于如何实现我需要做的事情不知所措
我正在尝试在现有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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。