Como saber usando XPath se um elemento está presente e não está vazio?
Eu tenho uma entrada XML algo nesta linha:
<Holding id="12">
<Policy>
<HoldingForm tc="1">Individual</HoldingForm>
<PolNumber>848433</PolNumber>
<LineOfBusiness tc="1">Life</LineOfBusiness>
<CarrierCode>67644</CarrierCode>
</Policy>
</Holding>
Minha manipulação neste XML depende se<PolNumber>
(é um elemento opcional no esquema) tem um valor ou não. Estou usando o Mule 3.3xpath
avaliador para fazer isso e minha expressão XPath parece isso:
<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/>
Isso funciona bem contanto que<PolNumber>
elemento está presente ou<PolNumber/>
é um elemento vazio. Mas se<PolNumber>
está ausente, a expressão acima lança exceção.
Eu tentei usarXPath booleano função, mas retornatrue
para<PolNumber/>
. Existe uma maneira melhor de verificar se um elemento está presente e não está vazio?
EDITAR:
Esta é a configuração do gerenciador de namespace na minha configuração mula
<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>