我有以下XML代码,它在我的Crm Dynamics表单中过滤了我的查找字段。
过滤器按照输入到“帐户”字段中的数据使用。但是,帐户字段可以包含&
符号,当它出现时,会发生错误,指出XML格式不正确。
有没有人有解决问题的方法?
function accountcontact()
{
Xrm.Page.getControl("new_contactlookup").addPreSearch(function () { addcontactlookup(); });
function addcontactlookup()
{
var accountID = Xrm.Page.getAttribute("new_companylookup");
var AccountIDObj= accountID.getValue();
if (AccountIDObj != null)
{
var fetchFilter1 = "<filter type='and'><condition attribute='parentcustomerid' uitype='" + AccountIDObj[0].entityType + "' operator='eq' value='" + AccountIDObj[0].id + "' uiname='" + AccountIDObj[0].name + "' /></filter>";
Xrm.Page.getControl("new_contactlookup").addCustomFilter(fetchFilter1);
}
}
}
答案 0 :(得分:1)
某些字符在XML中具有特殊含义,而&符号(&amp;)就是其中之一。因此,这些字符应该用它们各自的实体引用替换(即使用字符串替换)。根据XML规范,XML中有5 predefined entities:
< < less than
> > greater than
& & ampersand
' ' apostrophe
" " quotation mark
或者,你可以放置&#34; text&#34;字符串可能包含CDATA部分中的特殊字符,因此XML解析器不会尝试解析它们。例如:
<SomeElement><![CDATA[This & will be ignored]]></SomeElement>