XSLT удалить среднюю часть из строки - PullRequest
0 голосов
/ 09 января 2020

Newb ie XSLT вопрос: у меня есть строка, состоящая из 3 частей, разделенных точками: "2120.555.11111" Как мне удалить среднюю часть, чтобы я получил "2120.11111"? (Длина частей строки может быть не постоянной)

Ответы [ 2 ]

1 голос
/ 09 января 2020

XPath 1.0, отдельные шаги для потомков:

substring-before('2120.555.11111', '.')       # '2120'
concat('2120', '.')                           # '2120.'
substring-after('2120.555.11111', '2120.')    # '555.11111'
substring-after('555.11111', '.')             # '11111'
concat('2120.', '11111')                      # '2120.11111'

вместе взятые, при условии, что <X> содержит '2120.555.11111':

concat(
  concat(substring-before(X, '.'), '.'),
  substring-after(substring-after(X, concat(substring-before(X, '.'), '.')), '.')
)

XPath 2.0+ более гибок в обработке строк, это один из способов сделать это:

string-join(tokenize(X, '\.')[position() = 1 or position() = 3], '.')
0 голосов
/ 09 января 2020

В XSLT 2.0 или выше вы можете сделать просто:

replace(input, '\..*\.', '.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...