Flex:如何判断XML是否格式正确?

时间:2009-05-07 15:30:54

标签: xml flex validation

我有一个加载一些XML的函数,如下所示:

private function onXMLLoad(e:Event):void
            {
                trace(e.target.data);
                hideLoading();
                DataModel.instance.data = XML(e.target.data);
                updateSelections();
                toggleExpand();
            }

如果正在加载的XML数据格式不正确,例如未关闭打开的标记。我收到一个错误,告诉我XML必须格式正确。我真的没有计划加载格式不正确的XML,但如果它确实发生了,我宁愿能够处理它。首先是有一种方法可以判断加载的数据是否在将其转换为XML之前是否格式良好,并且如果可能的话尝试修复它?

2 个答案:

答案 0 :(得分:3)

你可以在try / catch语句中包装强制转换:

try {
  DataModel.instance.data = XML(e.target.data);
} catch (err:TypeError) {
  //handle error
}

答案 1 :(得分:1)

AFAIK,没有官方的Flex / AS3库进行XML验证,我也不知道任何自定义的。

如果您可以在服务器端验证XML(假设它是适用的),那么这可能是您最好的选择,因为您将为大多数服务器端语言提供更多选项。

在将XML加载到XML类之前,您可以编写自己的类/函数来验证AS3中的XML。将数据变量作为String读入并解析,执行必要的操作以验证XML是否符合您的要求,包括匹配标记,并进行所需的更正。