Jak powiedzieć, używając XPath, jeśli element jest obecny i nie jest pusty?

W tym wierszu mam coś wejściowego XML:

<Holding id="12">
    <Policy>
        <HoldingForm tc="1">Individual</HoldingForm>
        <PolNumber>848433</PolNumber>
        <LineOfBusiness tc="1">Life</LineOfBusiness>
        <CarrierCode>67644</CarrierCode>
    </Policy>
</Holding>

Moje manipulowanie tym XML zależy od tego, czy<PolNumber> (jest to opcjonalny element w schemacie) ma wartość lub nie. Używam Mule 3.3xpath oceniający, aby to zrobić, a moje wyrażenie XPath wygląda tak:

<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/> 

To działa dobrze tak długo<PolNumber> element jest obecny lub<PolNumber/> jest pustym elementem. Ale jeśli<PolNumber> jest nieobecny, powyższe wyrażenie rzuca wyjątek.

Próbowałem użyćXPath boolean funkcja, ale wracatrue dla<PolNumber/>. Czy istnieje lepszy sposób sprawdzenia, czy element jest obecny i nie jest pusty?

EDYTOWAĆ:

To jest konfiguracja menedżera przestrzeni nazw w mojej konfiguracji muła

<xm:namespace-manager includeConfigNamespaces="true">
    <xm:namespace prefix="acord" uri="http://ACORD.org/Standards/Life/2" />
    <xm:namespace prefix="soap" uri="http://schemas.xmlsoap.org/soap/encoding/" />
</xm:namespace-manager>

questionAnswers(5)

yourAnswerToTheQuestion