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