У меня есть программа, которая использует данные с разделителями каналов, внутренне преобразует их в документ XML, применяет необходимые преобразования и выводит данные так же, как они поступили, когда входные данные с разделителями каналов
будут выглядеть примерно так this
John|Doe|23|19970101||||
123456|State Farm|Insured
claim|Report Title\.br\\.br\SECTION_TITLE\.br\\.br\****Plain
Text*****\.br\\.br\SECTION_TITLE\.br\\.br\******Plain Text*****\.br\\.br\*****Plain Text*****|
Внутренне это будет преобразовано в документ xml следующим образом
<message>
<person>
<firstname>John</firstname>
<lastname>Doe</lastname>
<dateOfBirth>19970101</dateOfBirth>
<x/>
<y/>
<z/>
</person>
<Insurance>
<PolicyNumber>123456</PolicyNumber>
<InsurerName>State Farm</InsurerName>
<x/>
<y/>
</Insurance>
<Documents>
<Type>claim</Type>
<Report>Report Title\.br\\.br\SECTION_TITLE\.br\\.br\****Plain
Text*****\.br\\.br\SECTION_TITLE\.br\\.br\******Plain Text*****\.br\\.br\*****Plain Text*****</Report>
</Documents>
</message>
Принимающая система ожидает, что строка отчета в узле <Report>
будет отформатирована с тегами html. Ниже приведено полное сообщение с узлом <Report>
, отформатированным с тегами html
<message>
<person>
<firstname>John</firstname>
<lastname>Doe</lastname>
<dateOfBirth>19970101</dateOfBirth>
<x/>
<y/>
<z/>
</person>
<Insurance>
<PolicyNumber>123456</PolicyNumber>
<InsurerName>State Farm</InsurerName>
<x/>
<y/>
</Insurance>
<Documents>
<Type>claim</Type>
<Report><html> <head> </head> <body><p> <b><u>Report Title</u></b> </p> <p align="left"> </p><p align="left"> <b>SECTION_TITLE</b> </p><p align="left">****Plain
Text*****</p> <p align="left"><p align="left"> <b>SECTION_TITLE</b> </p><p align="left">******Plain Text*****</p> <p align="left"><p align="left">*****Plain Text*****</p> <p align="left"></body> </html></Report>
</Documents>
</message>
Преобразованный документ XML будет преобразован в следующем порядке и отправит ожидаемый результат на принимающая система на исходящем.
John|Doe|23|19970101||||
123456|State Farm|Insured
claim|<html> <head> </head> <body> <p> <b><u>Report Title</u></b> </p> <p align="left"> </p> <p align="left"> <b>SECTION_TITLE</b> </p> <p align="left"> *****Plain Text***** </p> <p align="left"> </p> <p align="left"> <b>SECTION_TITLE</b> </p> <p align="left"> *****Plain Text***** </p> <p align="left"> </p> <p align="left"> *****Plain Text******<b> </b> </p> </body> </html>|
Использование XSLT. Если я токенизирую с шаблоном '\ .br \\. br \', предполагая, что первый токен всегда - заголовок отчета, а SECTION_TITLE - ключевые слова, которые я могу ищите, используя функцию содержащую .... как мне тогда построить строку узла и получить желаемый результат? или есть лучший способ добиться того же результата?