Wie kann mithilfe von XPath festgestellt werden, ob ein Element vorhanden und nicht leer ist?

Ich habe eine Eingabe XML etwas in dieser Zeile:

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

Meine Manipulation an diesem XML hängt davon ab, ob<PolNumber> (es ist ein optionales Element im Schema) hat einen Wert oder nicht. Ich benutze Mule 3.3xpath Evaluator dazu und mein XPath-Ausdruck sieht so aus:

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

Dies funktioniert gut, solange<PolNumber> Element ist vorhanden oder<PolNumber/> ist ein leeres Element. Aber falls<PolNumber> Fehlt, wirft der obige Ausdruck eine Ausnahme.

Ich habe versucht mitXPath Boolean Funktion, aber es kehrt zurücktrue zum<PolNumber/>. Gibt es eine bessere Möglichkeit zu überprüfen, ob ein Element vorhanden und nicht leer ist?

BEARBEITEN:

Dies ist die Konfiguration des Namespace-Managers in meiner Maultier-Konfiguration

<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>

Antworten auf die Frage(5)

Ihre Antwort auf die Frage