我必须对 JAXB 对象进行大量工作,并且在获取值时有一件烦人的事情。假设我得到了下一个 XML:
...
<a>
<b>
<c>1</c>
</b>
</a>
...
在java中,我可以达到元素 c 的值,如下所示:
xml.getA().getB().getC()
但是,如果元素不是强制性的,那么我必须实现许多 if 条件来检查元素是否为空。
if (xml != null && xml.getA() != null && xml.getA().getB() != null && xml.getA().getB().getC() != null {
...
}
我想直接在 JAXB 对象上使用 XPath 以避免编写这些可怕的 if 条件。我知道有一些类似的工具(例如 Apache JXPAth),但通常这些框架使用反射。我不想使用反射,因为它会严重影响性能。不幸的是,如果不使用反射,我无法想象任何解决方案,但也许有一个。你可以帮帮我吗?谢谢,V。
我发现 org.w3c.dom.Document 可以与 XPath 一起使用,但下一个问题是如何在带注释的 web 服务中使用 org.w3c.dom.Document 而无需再次编组?(我有点担心不必要地编组 XML)谢谢!