【发布时间】:2013-04-01 07:41:23
【问题描述】:
我在这一行有一个输入 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.3 xpath evaluator 执行此操作,我的 XPath 表达式如下所示:
<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/>
只要存在<PolNumber> 元素或<PolNumber/> 是空元素,此方法就可以正常工作。但是如果<PolNumber> 不存在,上面的表达式就会抛出异常。
我尝试使用XPath boolean 函数,但它为<PolNumber/> 返回true。有没有更好的方法来检查元素是否存在且非空?
编辑:
这是我的 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>
【问题讨论】: