2017-06-21 90 views
0

我有後續的XML包含空兒:找到節點和使用XPath

<RiskDetails> 
    <RatingSequence direction="O" value="2"></RatingSequence> 
    <VehicleDetails></VehicleDetails> 
    <RiskFeatures></RiskFeatures> 
    <Drivers> 
     <DriverDetails></DriverDetails> 
     <DriverDetails></DriverDetails> 
     <DriverDetails></DriverDetails> 
    </Drivers> 
    <CoverDetails></CoverDetails> 
    <LoadDiscountDetails> 
     <LoadDiscount></LoadDiscount> 
     <LoadDiscount></LoadDiscount> 
    </LoadDiscountDetails> 
</RiskDetails> 

我需要動態地發現沒有價值或屬性的每個子節點。我嘗試沒有成功找到返回這些節點的Xpath:

<VehicleDetails></VehicleDetails> 
<RiskFeatures></RiskFeatures> 
<Drivers> 
    <DriverDetails></DriverDetails> 
    <DriverDetails></DriverDetails> 
    <DriverDetails></DriverDetails> 
</Drivers> 
<CoverDetails></CoverDetails> 
<LoadDiscountDetails> 
    <LoadDiscount></LoadDiscount> 
    <LoadDiscount></LoadDiscount> 
</LoadDiscountDetails> 

我會刪除這些節點,只保留節點和他們的父母與價值觀:

<RiskDetails> 
    <RatingSequence direction="O" value="2"></RatingSequence> 
</RiskDetails> 

我能做到這一點層次,但是我我試圖只用一個Xpath來完成它。

回答

0

您可以嘗試使用下面XPath獲得所需的輸出:

//RiskDetails/*[not(@* or string())] 
+0

感謝Andersoon,它在這個例子中的工作,但我需要的東西通用的,我之前並以不同的名稱此節點之後有更多的節點,我無法代碼// RiskDetails。無論如何,我試圖從你的迴應開始。 –