2011-09-19 296 views
1

我認爲這個問題應該快速且容易,對於您的某些人更有經驗的JAXB'ers。我只需要檢查是否存在子元素,因爲我正在解組一個XML文件。JAXB - 檢查是否存在子元素

目前我得到的java.lang.NullPointerException錯誤,我認爲這是因爲我試圖創建一個不存在的對象(子元素)。這是一個簡單的例子。

<Meter> 
    <MeterSessionInput> 
    <MeterSessionOutput> 
     <MeterSessionOutputOptical> 

的MeterSessionOutputOptical孩子可以存在,但並不一定如此。我想在嘗試聲明其對象的對立部分之前檢查元素是否存在。

+0

我確實找到了一種方式,但也許別人可能會給我一個更好的方式。在MeterSessionOutput對象中,獲取MeterSessionOutputOptical實例的方法可以通過簡單的if語句進行評估。 'MeterSessionOutput mso = meter.getMeterSessionOutput(); if(mso.getMeterSessionOuputOptical()!= null){....}' – TyC

+2

你打什麼'NPE'?如果'MeterSessionOutputOptical'元素不存在,那麼你的JAXB實現將不會將其作爲一個對象來實現。 –

+0

@BlaiseDoughan當我嘗試創建'MeterSessionOutputOptical'實例而不檢查子元素是否存在時'NPE'。 XML文件中有大量的「米」,我正在循環遍歷它們。一些有MeterSessionOutputOptical,有些沒有。 – TyC

回答

3

您的評論是答案。只需使用if語句對子元素執行空檢查即可。無論如何,您應該這樣做,除非您使用xsd並強制子元素元素在綁定時存在。