我必須使用JAXB對象進行大量工作,並且在獲取值時有一件令人討厭的事情。讓我們假設我有下一個XML:在沒有反射的java中xpath
...
<a>
<b>
<c>1</c>
</b>
</a>
...
在java中我可以在c如下到達元素的值:
xml.getA().getB().getC()
但是,如果元素是不是強制性的話,我需要實現許多如果條件檢查元素是否爲空。
if (xml != null && xml.getA() != null && xml.getA().getB() != null && xml.getA().getB().getC() != null {
...
}
我想直接在JAXB對象上使用XPath以避免寫入這些可怕的條件。我知道有一些類似的工具(例如Apache JXPAth),但通常這些框架使用反射。我不想使用反射,因爲它會嚴重影響性能。 不幸的是,我不能想象任何解決方案,而不使用反射,但也許有一個。 你能幫我嗎? 謝謝, 五
我發現org.w3c.dom.Document中可以使用XPath使用,但接下來的問題是我如何使用org.w3c.dom.Document中以註釋的web服務,而不編組它又是什麼? (我有點擔心編組XML的次數多於必要)謝謝!
反射不一定很慢。任何正確使用反射的體面框架(即緩存'java.lang.reflect。*'實例和相關信息)將使您的性能接近等效的非反射訪問。在丟棄它之前測試它。 – gpeche 2013-05-28 18:33:56