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>