在ColdFusion中获取XML解析错误。可以验证返回的数据包吗?

时间:2010-04-08 01:49:14

标签: xml coldfusion

在特定CF页面上偶尔出现错误。下面列出的违规代码。非常奇怪,因为当我重新启动CF时它就消失了。可以通过XMLValidate检查XML以防止这种情况发生吗?

这是某种CF错误,因为重启CF后错误消失了吗?我有一种感觉,错误会在某个时候重新出现。

  

解析XML文档时发生错误。元素类型“meta”必须由匹配的结束标记“”终止。

<cfhttp method="get" url="http://bs.mysite.com/webservice/rec/get.sbs?customerId=345S4BE8x&itemId=#product_id#&number=20&ruleId=#product.location_tab_accessories#">

<cfset result = xmlParse(cfhttp.FileContent)>
<cfset recs = xmlSearch(result, "/result/thsite/site/itemId")>

1 个答案:

答案 0 :(得分:9)

您可以使用XmlValidate()根据DTD或架构验证xml doc。 XmlParse()本身验证文档,如果xml格式不正确则抛出错误。从CF7开始,它还支持验证器参数。使用cftry / cfcatch来处理异常。

您收到的错误消息表明您没有收到预期的XML文档,但是其中包含一个带有未关闭元标记的HTML页面。也许这可能是一个错误页面或你被重定向到的其他一些html页面。

目标网址的DNS / IP是否有变化? Cfhttp执行DNS缓存(底层JVM),这可能会导致像您在这里遇到的奇怪效果。重新启动ColdFusion会清除缓存,网址会再次得到解决,您的请求也会成功。