¿Cómo saber usar XPath si un elemento está presente y no está vacío?
Tengo una entrada XML algo en esta línea:
<Holding id="12">
<Policy>
<HoldingForm tc="1">Individual</HoldingForm>
<PolNumber>848433</PolNumber>
<LineOfBusiness tc="1">Life</LineOfBusiness>
<CarrierCode>67644</CarrierCode>
</Policy>
</Holding>
Mi manipulación en este XML depende de si<PolNumber>
(Es un elemento opcional en el esquema) tiene un valor o no. Estoy usando Mule 3.3xpath
evaluador para hacer esto y mi expresión XPath se ve esto:
<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/>
Esto funciona bien siempre y cuando<PolNumber>
el elemento esta presente o<PolNumber/>
Es un elemento vacío. Pero si<PolNumber>
está ausente, por encima de la expresión arroja excepción.
Traté de usarXPath booleano Funciona pero vuelvetrue
para<PolNumber/>
. ¿Hay una mejor manera de verificar si un elemento está presente y no está vacío?
EDITAR:
Esta es la configuración del gestor de espacio de nombres en mi mule config.
<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>