例如,请考虑下面的代码片段:ColdFusion中使用CFIF
方案1:
我作为SOAP响应的一部分收到的公司名称如下:
<Company>Amazon, Inc </Company>
情景2:
作为零件收到的另一公司名称SOAP响应如下:
<Company>Google, Inc </Company>
基本上,从用户端我输入一些信息,并基于该我收到<Company>
标签内不同的公司名称。
下面的代码显示了如何正在存储在XMLResponse可变响应
<cfset XMLResponse = XmlParse(
httpResponse.fileContent.Trim()
) />
下面一段代码显示了如何正在解析响应和存储在变量中的内容:
<cfset arrCOMPANY = XmlSearch(
XMLResponse,
"//*[name()='Company']"
) />
所以现在我有arrCOMPANY =亚马逊公司是我恰好在情景和谷歌公司,否则。
我的问题:
我必须基于公司的名称,这些数据插入到数据库中,并设置一个整数字段等于1,如果公司名称是亚马逊公司 并将其设置为对于所有其他公司,否则为零。
请让我知道如果我下面的正确的道路:
我想基于公司名称写两个cfqueries的,所以我想放置以下条件:
<cfif arrCompany eq "Amazon, Inc">
// Here I will write cfquery with an integer field = 1
Or
<cfif arrCompany eq "Google, Inc">
// Here I will write cfquery with integer field 0
那么,我是否做了正确的比较,我想知道我与eq sign进行比较的公司名称是否实际进行了比较,如 它包含第一个单词之后的空格(例如Amazon和Inc之间的空格)。
请分享你的经验。
感谢
这里是我做过什么:
我有特定元素施加微调功能为好。例如:
在公司名称变量中的值是Amazon, Inc
<cfset CompanyName = Trim(arrCompany[1])> // adding index 1 because it's a complex structure
这里是我正在试图CFIF条件使用:
<cfif CompanyName eq "Amazon, Inc">
<cfset m = 1>
<cfelse>
<cfset m = 0>
</cfif>
<cfoutput>#m#</cfoutput>
尽管有上述这样做,我得到0
我的输出。请让我知道,如果我比较错误。
您不需要单独的查询来设置一个位标志。您遇到的问题是什么?如果节点包含* exact *值'Amazon,Inc',则它将被视为相等。你的实际代码有什么不同吗? – Leigh
@Leigh请检查我更新的问题。谢谢 – Jack
在引号之间尝试输出公司名称,以便您可以查看确切的修剪值。'#companyName#' 。引号将有助于查看是否还有更多字符不能删除修剪。 –
Sanjeev