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

3

我有一个函数,它加载了一些类似于以下内容的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个回答

3
你可以在try/catch语句中包含强制类型转换的代码块:
try {
  DataModel.instance.data = XML(e.target.data);
} catch (err:TypeError) {
  //handle error
}

它对我不起作用,它抛出相同的错误并阻止应用程序运行。 - Alberto M

1

据我所知,目前没有官方的Flex/AS3库可以进行XML验证,我也不知道是否有任何自定义库。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接