Как узнать, используя XPath, если элемент присутствует и не пустой?
У меня есть входной XML-код в этой строке:
<Holding id="12">
<Policy>
<HoldingForm tc="1">Individual</HoldingForm>
<PolNumber>848433</PolNumber>
<LineOfBusiness tc="1">Life</LineOfBusiness>
<CarrierCode>67644</CarrierCode>
</Policy>
</Holding>
Мои манипуляции с этим XML зависят от того,<PolNumber>
(это опциональный элемент в схеме) имеет значение или нет. Я использую Mule 3.3xpath
оценщик, чтобы сделать это, и мое выражение XPath выглядит так:
<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/>
Это работает нормально, пока<PolNumber>
элемент присутствует или<PolNumber/>
пустой элемент Но если<PolNumber>
отсутствует, указанное выше выражение выдает исключение.
Я пытался с помощьюXPath логический функция, но она возвращаетtrue
за<PolNumber/>
, Есть ли лучший способ проверить, если элемент присутствует и не пустой?
РЕДАКТИРОВАТЬ:
Это конфигурация менеджера пространства имен в моей конфигурации мул
<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>