加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 在coldfusion中使用cfif

发布时间:2020-12-16 22:45:21 所属栏目:百科 来源:网络整理
导读:例如,请考虑以下代码段: 场景1: 我作为SOAP响应的一部分收到的公司名称如下: CompanyAmazon,Inc /Company 场景2: 我作为SOAP响应的一部分收到的另一个公司名称如下: CompanyGoogle,Inc /Company 基本上,从用户端我输入一些信息,并根据我在 Company内获
例如,请考虑以下代码段:

场景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 =亚马逊,Inc恰好是在Scenario和Google,Inc.

我的问题:

我必须根据公司名称将这些数据插入到数据库中,如果公司名称是Amazon,Inc,则将整数字段设置为等于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标志进行比较的公司名称是否会实际比较或不作为
它包含第一个单词后面的空格(例如亚马逊和公司之间的空格).

请分享您的经验.

谢谢

这是我做的:

我也在特定元素上应用了trim功能.例如:

CompanyName变量中的值是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.如果我比较错误,请告诉我.

解决方法

<cfset CompanyName = Trim(arrCompany[1])>

如果你cfdump该变量,或将其包装在xmlFormat()中,你会看到它包含整个节点,而不仅仅是文本.仅使用cfoutput时很容易错过,因为浏览器会将xml视为标记,因此除非您查看源代码,否则它们不可见:

<cfoutput>#XMLFormat(CompanyName)#</cfoutput>

要仅获取节点文本,请使用xmlText属性,然后修剪它:

<cfset CompanyName = trim( arrCompany[1].xmlText )>

编辑:另外,如评论中所述,您不需要单独的查询来设置位标志.只需根据公司名称将CF变量设置为1或0,然后在查询中使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读