2017-06-21 5 views
0

ich die folgen xml haben:Finden Knoten und enthält leere Kinder mit 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> 

Ich brauche dynamisch jeden Kinder-Knoten ohne Wert oder ein Attribut zu finden. Ich versuche ohne Erfolg eine XPath finden, die diese Knoten zurückgibt:

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

Ich werde diese Knoten entfernen und halten nur Knoten und ihre Eltern mit den Werten:

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

ich es hierarchisch tun konnte, ich aber Ich versuche es mit nur einem einzigen X-Pfad.

Antwort

0

Sie können versuchen, unter XPath zu verwenden, um erforderliche Ausgabe:

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

Dank Andersoon, funktioniert es für dieses Beispiel, aber ich brauche etwas generisch, ich mehr Knoten vor und nach diesem Knoten mit unterschiedlichen Namen Ich kann nicht hart // RiskDetails programmieren. Jedenfalls versuche ich, ausgehend von deiner Antwort zu spielen. –

Verwandte Themen