SimpleXML - 如何忽略错误XML中的重复标记?

时间:2015-07-26 11:54:42

标签: java xml xml-parsing simple-framework

我正在使用java SimpleXML来解析来自许多应用程序的XML。

许多应用程序都会为这种假设的标准创建奇特的XML实现,例如放入一个'启用的'不止一次标记。

在这种情况下,我只是想忽略第二个,因为它是一个错误并且与第一个具有相同的值,但是SimpleXML会抛出异常"元素'启用'已被使用"

如何防止这种情况?

这是抱怨的领域。

@Element(required = false)
protected boolean enabled = true;

XML非常庞大,所以不想发布它。有没有办法让SimpleXML报告导致错误的行号?

1 个答案:

答案 0 :(得分:0)

尝试按照注释:

   class RepeatElements {
      @ElementListUnion({
         @ElementList(entry = "enable", 
           type = Boolean.class, inline = true)
        })
      private ArrayList<Boolean> enables = new ArrayList<>();

      public boolean isEnabled() {
        // TODO check size
        return enables.get(0).booleanValue();
      }
    }

使用一些&#34;输出类RepeatRlements&#34;

    <repeatElements>
        <enable>true</enable>
        <enable>true</enable>
        <enable>true</enable>
    </repeatElements>