我正在使用ColdFusion 8.我是XML的新手.
我试图解析一些XML.在大多数情况下,我正在循环响应并获取我需要的信息.
当我遍历ResponseNodes数组并且我尝试访问CustomFields(如果有的话)时出现问题.CustomFields仅适用于某些记录,而非全部记录.
for (i = 1; i lte arrayLen(ResponseNodes); i++) {
CustomFields = xmlParse(ResponseNodes[i].CustomFields.Field);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Element CUSTOMFIELDS.FIELD is undefined in a Java
object of type class coldfusion.xml.XmlNodeMap referenced as ''
Run Code Online (Sandbox Code Playgroud)
我看到前两个数组元素处理得很好,因为它们有CustomFields.崩溃发生在第三个元素上,它没有CustomeFields节点.
如何测试CustomFields?
在使用StructKeyExists()解析XML之前,您可以测试它的存在
for (i = 1; i lte arrayLen(ResponseNodes); i++) {
if ( StructKeyExists( ResponseNodes[i], "CustomFields" ) {
CustomFields = xmlParse(ResponseNodes[i].CustomFields.Field);
}
}
Run Code Online (Sandbox Code Playgroud)