我正在从salesforce数据库创建一个xml,一切正常,除非有一个&在已提取的数据中。
<apex:page contenttype="text/xml"
> controller="Test2ab" > <data
> wiki-section="Timeline"> <apex:repeat
> value="{!lsttask}" var="e" > <event
> start="{!e.ActivityDate}" title=
> "{!e.Subject}"> <apex:outputText
> value="{!e.Subject}" /> </event>
> </apex:repeat> </data></apex:page>
在控制器中我只是查询
> lsttask =[Select OwnerId,WhoId,Status,Subject,ActivityDate from Task where Status = 'Completed' Order By ActivityDate Desc];
如何使用转义从数据库中检索的值
谢谢
Prady
答案 0 :(得分:1)
我对APEX / Salesforce知之甚少,但是当你从数据库中提取的字符串构建XML时,你可能需要调用字符串的replace方法:
string.replace("&","&")
http://www.salesforce.com/us/developer/docs/apexcode/salesforce_apex_language_reference.pdf
您可能还想要更换< with <, > with >,' with ' and " with "
答案 1 :(得分:0)
在您的示例中,这很有效:
<apex:outputText value="{!HTMLENCODE(e.Subject)}" escape="false" />
在更简单的情况下,您还可以使用:
{!HTMLENCODE(e.Subject)}
以下是HTMLENCODE and other Salesforce functions的摘要 将apex:outputText与HTMLENCODE和escape = false配对的示例位于Apex Dev Guide
答案 2 :(得分:0)
这也可能有所帮助。我意识到游戏已经晚了,但它可能会帮助其他人访问这个话题。