Problem with & character in ZML button

Problem with & character in ZML button

I have a simple 'for' loop in the ZML Editor like the below

  1. for each  rec in Test_Form[ID!=0]
  2. {
  3. temp = rec.Media;
  4. %>
  5. <pr height='fill' width='fill'>
  6.             <pc width='100%' padding='10px'>
  7.               <pr height='auto' width='auto'>
  8.                 <pc>
  9.                   <button text='<%=temp%>' size='3' color='#000000' bgColor='#F0ECE6' type='flat' action='OpenReport' parameters='' target='new-window' componentLinkName='' cornerRadius='60px' /> </pc>
  10.               </pr> 
  11.             </pc>
  12.           </pr>
  13. <%
  14. }
  15. %>
This loop generates buttons with text= '<%=temp%>'  
The problem is that when the temp gets values like ' Click & Go' it returns error ( Failed to load ZML. Please check for errors in your ZML script and reload. ). 
I think that the problem is the '&'.
When I manually test it like text=' Click  & amp ;  Go' it works but when it gets the temp (from the loop) like text=' Click & Go'
it does not work. How can I solve this issue?
For sure I will have this problem and with other special characters like brackets etc.