我在这一行有一个输入 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/>
有没有更好的方法来检查元素是否存在且非空?
编辑:
这是我的 mule 配置中命名空间管理器的配置
<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>