java - 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 处理?
解决方案
使用 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;
}
}
}
推荐阅读
- python - SQLALchemy:数据导入后的属性错误从何而来?
- android - 如何修复avd模拟器进程被杀死?
- java - 如何在 JavaFX 中打开一个新窗口
- ruby-on-rails - 带有现有记录的 Rails 嵌套属性
- pandas - 如何爆炸 dict 列?Explode() 没有完成这项工作
- node.js - express JS 的数据包错误 [无服务器 lambda/Netlify 函数]
- visual-studio - 解决方案资源管理器中未显示刷新按钮
- sql - 数据库设计:我如何跟踪预付费课程以及课后付费?
- python - 用熊猫在同一图中绘制条形图的平均值
- android - 我们可以在观察者中使用观察者吗?