Función para mapear los títulos de las columnas de las listas de Sharepoint para usarlas en CAML

Publicado el 08 abril 2011 por Albertllueca

Cada vez que tenemos que introducir el nombre de una columna en Sharepoint, no podemos controlar que los usuarios la pongan en minusculas, mayúsculas, con acentos, sin acentos, con espacios, sin espacios… Para eso siempre recurrimos a la típica busqueda en Google de “como mapear caracteres hexadecimales”, o alguna cosa por el estilo.

Haciendo una búsqueda parecida he llegado a este blog http://developingispainful.blogspot.com donde han realizado una función para transformar cualquier palabra mapeada a hexadecimal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
static string fieldName2Caml(string str)
{
    int i = 0;
    while (i < color="#0000ff">        if ((str[i] >='0' & str[i] <= '9')
            (str[i] >= 'a' & str[i] <= 'z')
            (str[i] >= 'A' & str[i] <= 'Z'))
            i++;
        else
        {
            str = strSubstring(0, i) +
                stringFormat("_0x00{0}_", stringFormat("{0:X}",
                ConvertToInt32(str[i])))ToLower() +
                strSubstring(i+1);
            i += 8;
         }
     }
     return str;
}

Gracias a esta función podremos utilizar el nombre completo de la columna sin preocuparnos de saber como se sustituye los acentos, diéresis, etc, den hexadecimal y así podemos realizar nuestras consultas CAML mucho más limpias y con los formatos válidos.

Pero para los nostálgicos los diferentes mapeos existentes son:

á   _x00e1_
Á   _x00c1_
é   _x00e9_
É   _x00c9_
í   _x00ed_
Í   _x00cd_
ó   _x00f3_
Ó   _x00d3_
ú   _x00fa_
Ú   _x00da_
ü   _x00fc_
ñ   _x00f1_
Ñ   _x00d1_
~   _x007e_
!   _x0021_
@   _x0040_
#   _x0023_
$   _x0024_
%   _x0025_
^   _x005e_
&   _x0026_
*   _x002a_
(   _x0028_
)   _x0029_
_   _
+   _x002b_
-   _x002d_
=   _x003d_
{   _x007b_
}   _x007d_
:   _x003a_
“   _x0022_
_x007c_
;   _x003b_
‘   _x0027_
\   _x005c_
<   _x003c_
>   _x003e_
?   _x003f_
,   _x002c_
.   _x002e_
/   _x002f_
`   _x0060_
_x0020_

via http://developingispainful.blogspot.com/2008/11/mapeo-de-hex-para-caml-definitivo.html