Я использую WSO2 ESB для обработки и распространения HL7. Я хочу фильтровать HL7 по его содержанию. Передача сообщений в ESB:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<hl7:message xmlns:hl7="http://wso2.org/hl7">
<ADT_A01 xmlns="urn:hl7-org:v2xml">
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&</MSH.2>
<MSH.3>
<HD.1>HL7Soup</HD.1>
</MSH.3>
<MSH.4>
<HD.1>Instance1</HD.1>
</MSH.4>
<MSH.5>
<HD.1>HL7Soup</HD.1>
</MSH.5>
<MSH.6>
<HD.1>Instance2</HD.1>
</MSH.6>
<MSH.7>
<TS.1>200808181126</TS.1>
</MSH.7>
<MSH.8>SECURITY</MSH.8>
<MSH.9>
<MSG.1>ADT</MSG.1>
<MSG.2>A04</MSG.2>
</MSH.9>
<MSH.10>MSG00001</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.5.1</VID.1>
</MSH.12>
</MSH>
...................
</ADT_A01.INSURANCE>
</ADT_A01></hl7:message></soapenv:Body></soapenv:Envelope>
Я бы хотел фильтровать сообщения HL7 по содержанию. Если ДОПОЛНИТЕЛЬНО ОК, ПРОЧЕЕ Бросьте это. Я попытался с помощью следующего фильтра-посредника, но он не работает. Он всегда идет в ветку else:
<filter regex=".*ADT.*" source="//MSG.1[1]">
<then>
<log level="custom">
<property name="ADT" value="Oui"/>
</log>
</then>
<else>
<log level="custom">
<property name="ADT" value="Non"/>
</log>
</else>
</filter>
Выражение xpath работает в онлайн-тестере как https://www.freeformatter.com/xpath-tester.html Что не так?