Выражение XPath — замена пробелов

Я хочу заменить все пробелы между строками на %20 в выражении XPath. Пожалуйста, дайте мне знать, как это сделать. Я пытался использовать normalize-space, но это удаляет только начальные и конечные пробелы. Пожалуйста помоги.


person n.path    schedule 23.11.2017    source источник


Ответы (1)


Я хочу заменить все пробелы между строками на %20 в выражении XPath.

XPath 2.0

Используйте replace($s, $pattern, $replacement):

replace(/path/to/it, '\s', '%20')

Или, как услужливо заметил Майкл Кей, рассмотрите encode-for-uri($uri-part)", который выполняет эту замену среди других URI правила экранирования (RFC 3986, раздел 2).

XPath 1.0

Вам понадобится помощь языка хостинга, такого как XSLT, Java, C#, Python и т. д.


Я пытался использовать normalize-space, но это удаляет только начальные и конечные пробелы.

Исправление: normalize-space() удаляет начальные и конечные пробелы, и объединяет каждую внутреннюю последовательность пробелов в один пробел.

person kjhughes    schedule 23.11.2017