UTI_UrlEncode HS en v16

J’utilise avec plaisir, sans modération et depuis 2008 la méthode de Bruno UTI_GoogleMapGeo pour calculer des distances.
La méthode UTI_UrlEncode utilise la ligne de commande
_o_XSLT APPLIQUER TRANSFORMATION($xml_source_x;$xsl_sheet_x;$xml_result_x)

en v16 64-bit il ne faut pas utiliser cette commande. Comment la remplacer ? Je ne sais pas faire…

<code 4D>
C_TEXTE($1;$0)
C_TEXTE($root_t;$xsl_source_t)
Si (Nombre de paramètres>0)

C_BLOB($xml_source_x)
$root_t:=DOM Créer ref XML("string-to-encode")
DOM ÉCRIRE VALEUR ÉLÉMENT XML($root_t;"string-to-encode";$1)
DOM EXPORTER VERS VARIABLE($root_t;$xml_source_x)
DOM FERMER XML($root_t)

$xsl_source_t:=""
$xsl_source_t:=$xsl_source_t+"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
$xsl_source_t:=$xsl_source_t+"<xsl:stylesheet version=\"2.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:str=\"http://exslt.org/strings\">\n"
$xsl_source_t:=$xsl_source_t+"<xsl:output method=\"text\" />\n"
$xsl_source_t:=$xsl_source_t+"<xsl:template match=\"/\">\n"
$xsl_source_t:=$xsl_source_t+" <xsl:value-of select=\"str:encode-uri(/string-to-encode, false())\" />\n"
$xsl_source_t:=$xsl_source_t+"</xsl:template>\n"
$xsl_source_t:=$xsl_source_t+"</xsl:stylesheet>\n"

C_BLOB($xml_source_x;$xsl_sheet_x;$xml_result_x)
CONVERTIR DEPUIS TEXTE($xsl_source_t;"utf-8";$xsl_sheet_x)

_o_XSLT APPLIQUER TRANSFORMATION($xml_source_x;$xsl_sheet_x;$xml_result_x)

$0:=Convertir vers texte($xml_result_x;"utf-8")

Fin de si
</code 4D>

Un petit tour par la doc : http://livedoc.4d.com/4D-Langage-16-R2.1620/XML/Presentation-des-commandes-XML-generiques.300-3112494.fr.html

Il y a aussi une discussion (avec un code de Miyako un poil plus concis :oops:) :

http://forums.4d.fr/Post/FR/17578327/1/17578957#17578957