заменить строку xslt на substring-after - PullRequest
0 голосов
/ 28 января 2020

У меня есть требование изменить поле, например:

<ADDRESS>RieglerhÃtte|27|22|~|~</ADDRESS> до RieglerhÃtte 27/22.

Удалить все ~, заменить все | to / (кроме первого вхождения | to '' пробела).

Я попытался использовать функцию перевода как:

<?substring-before(ADDRESS,‘|‘)?> 
<?translate(translate(substring-after(ADDRESS,‘|‘),‘~|‘,‘/‘),‘|‘,‘/‘)?>

, которая дает результат как: RieglerhÃtte 27///

Также попытался использовать replace:

<?xdofx:replace(replace(replace(ADDRESS,'~|',''),'|~',''),'|','/')?>

, который работает нормально, но не имеет места после первого появления | : RieglerhÃtte/27. Я попытался использовать substring-before с replace, но в BIP произошла ошибка. (xdofx и xdoxslt не могут использоваться вместе).

Я пытаюсь получить вывод, например RieglerhÃtte 27 или RieglerhÃtte 27/11/22/33 (для ввода как - RieglerhÃtte|27|11|22|33).

1 Ответ

0 голосов
/ 29 января 2020

Я думаю, вы были очень близки. Предполагая, что ~ является вашим персонажем для «пусто», | разделяет поля, и вы не хотите показывать пустые поля ...

Попробуйте это:

<?substring-before(ADDRESS,‘|‘)?> 
<?translate(translate(substring-after(ADDRESS,‘|‘),‘|~‘,‘‘),‘|‘,‘/‘)?>

Сначала он удаляет пустые значения, а затем изменяет разделитель канала на прямой sla sh.

...