首页 > 解决方案 > JAXB:从不同继承级别获取标签

问题描述

我如何使用 JAXB<f>从这样的 XML 中获取所有这 4 个标签:

<f id='1' value='a'>
<f id='2' value='b'>
<table>
   <tr>
       <td>
           <f id='3' value='c'>
       </td>
   </tr>
</table>
<p>
    <f id='4' value='b'>
</p>

在没有为所有类型的继承创建标签的类的情况下,这是否可能在 JAXB 中实现?或者我应该使用不同的库进行 XML 处理?

标签: javaxmljaxb

解决方案


使用 JSoup 解决,获取必要的标签并手动将其放入必要的父项中:

    Document parsedDoc = Jsoup.parse(xml, "", Parser.xmlParser());
    Elements fields = parsedDoc.getElementsByTag("f");
    for (Element fieldElement : fields) {
        Elements parents = fieldElement.parents();
        for (Element parent : parents) {
            if (parent.nodeName().equals("document")) {
                String id = parent.attr("id");
                // find necessary parent and add to it
                break;
            }

        }
    }

推荐阅读