2010-07-24 16 views
0

J'ai une valeur hexadécimale provenant d'un fichier XML et j'essaie d'utiliser cette valeur hexadécimale comme couleur d'arrière-plan pour une table de données. Cependant, dans IE8, le rendu reste sous forme de chaîne.Rendu d'une chaîne en tant que valeur hexadécimale couleur dans Ruby on Rails

Quand je l'ai utilisé

<%= h(@dhex1[k]) %> 

il rend comme

hex <%> A8960A <%/hex> avec des étiquettes hexagonales (note signes% sont si le navigateur ne pense pas qu'ils sont des balises

dans le navigateur. J'ai essayé

<td style="background-color:#<%=h(@dhex1[k].to_s)%>">  
<td style="background-color:#<%=h(@dhex1[k])%>">  
<td style="background-color:#<%[email protected][k]%>"> 
<td style="background-color:<%[email protected][k]%>"> 

mais il ne sera pas rendu en arrière-plan. Les balises hexagonaux comment la valeur est stockée la doc XML lui-même et j'utilise

@hex1 = XPath.match(xmldoc, "///hex") 

pour obtenir la valeur hexadécimale, mais elle rend aussi A8960A. De quoi ai-je besoin pour changer?

+0

Assurez-vous que vous avez un '' # avant la couleur. Sinon, je vais devoir voir exactement ce que la sortie est ... – jtbandes

Répondre

2

De votre description, il semble que @dhex1[k] conatins un élément xml indésirable. Ou bien se débarrasser de ce à l'endroit où vous extrayez la valeur, comme dans

@hex1 = XPath.match(xmldoc, '//hex/text()') 

ou plus tard, comme dans

<td style="background-color:#<%= @dhex1[k].gsub(/<.+?>/, '') %>">