简单 XML - 两个不同的根元素

Simple XML - Two different root elements

我的问题是我必须解析一个 xml 文档,它可以有两个不同的根 xml 标签。

变体 1:

<?xml version="1.0" encoding="UTF-8"?>
<success>
success...
</success>

变体 2:

<?xml version="1.0" encoding="UTF-8"?>
<error>
error...
</error>

我知道有注释 @ElementUnion(),但据我所知它只适用于非根标签。

更多信息:

我正在改造并使用 api 并使用简单-xml 来解析 xml-文档。

如果有人有解决方案或解决方法,那就太好了。

我唯一的想法是调用 api,捕获异常并用另一个模型重试变体 2。

提前致谢

您可以使用Persister.validate。它采用与 Persister.read 和 returns 相同的参数,如果传递的 class 可以被解析,则为真或假。

这是使用 API 的最佳方法,您也可以通过阅读 xml 的前两行(在您的示例中)手动检测 class,但在更复杂的结构你需要使用 'validate'.