当前位置 : 主页 > 网页制作 > xml >

xml – 在coldfusion中使用cfif

来源:互联网 收集:自由互联 发布时间:2021-06-13
例如,请考虑以下代码段: 场景1: 我作为SOAP响应的一部分收到的公司名称如下: CompanyAmazon, Inc /Company 场景2: 我作为SOAP响应的一部分收到的另一个公司名称如下: CompanyGoogle, Inc /Co
例如,请考虑以下代码段:

场景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,然后在查询中使用它.

网友评论