我觉得自己没有想出这个问题。我有coldfusion webservice(bluedragon7)接受来自合作伙伴的信息。它们在结果字段中传递xml,它只显示参数中accessionNumber的第一个元素。如果我将参数类型更改为其他任何内容(any,string等),则会抛出500个错误。我在这里错过了什么吗?
以下是该功能的片段:
<cffunction access="remote" name="result" output="false" returntype="any" hint="">
<cfargument name="userid" type="string" required="yes" hint="userid">
<cfargument name="password" type="string" required="yes" hint="password">
<cfargument name="result" type="xml" required="Yes" default="result">
</cffunction>
以下是他们的帖子样本:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header />
<soapenv:Body>
<result xmlns="http://cws.ots.labcorp.com">
<userId>peter265974</userId>
<password>pwd265974</password>
<result>
<accessionNumber>0572854881</accessionNumber>
<accountLocationCode>000010</accountLocationCode>
<accountLocationName>AERO CONTROL</accountLocationName>
<accountLocationPhone>2537353350</accountLocationPhone>
<accountName>HEALTHFORCE PARTNERS CORPORATE</accountName>
<accountNumber>000804</accountNumber>
<collectorCOCcomments>
<abbreviation />
<commentText>100154550. TEST OF VIEWING CO</commentText>
<commentType>MS</commentType>
</collectorCOCcomments>
</result>
</result>
</soapenv:Body>
答案 0 :(得分:0)
我遇到了同样的问题。我试图循环遍历所有元素,同时检查元素是否仍然具有“xmlchild”。也许我的thread可以在这里提供帮助。
但你必须改变你的身体内容将保存在var
中的行<cfset var body = xmlsearch(cont, "//SOAP-ENV:Body")[1] />
只需插入“soapenv:Body”而不是“SOAP-ENV:Body”