Crm 2011获取XMl-无效XMl问题,如何修复?
我正在使用fetch xml从ms crm 2011实体中重设值。 它抛出无效的XML错误,示例XML如下所示:Crm 2011获取XMl-无效XMl问题,如何修复?,xml,dynamics-crm-2011,fetchxml,Xml,Dynamics Crm 2011,Fetchxml,我正在使用fetch xml从ms crm 2011实体中重设值。 它抛出无效的XML错误,示例XML如下所示: <fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'> <entity name='xyz_registrationanswer'> <attribute name='xyz_registrationid' />
<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>
<entity name='xyz_registrationanswer'>
<attribute name='xyz_registrationid' />
<attribute name='xyz_name' />
<filter type='and'>
<condition attribute='xyz_name' operator='in' >
<value>Do you want to subscribe to 1 & 2?</value>
</condition>
</filter> <order attribute='xyz_name' descending='false' />
</entity>
</fetch>
您想订阅1和2吗?
通过查看问题,我找到了原因,即介于1和2之间的&符号:
<value>Do you want to subscribe to 1 & 2?</value>
您想订阅1&2吗?
1-有人能帮我解决这个问题吗
2-还有哪些非法字符我可以处理
关于。HttpUtility.HtmlEncode()通过处理非法字符(&'),为我工作
HttpUtility.HtmlEncode(“您想订阅1&2吗?”)
有关更多详细信息,请参阅下面的文章
XML中有五个“非法”字符必须编码为实体:
&作为&apos;
“作为”
&as&;
这就是
HttpUtility.HtmlEncode()
有效的功能
还有其他一些字符,如umlaut字符,在HTML中使用时应该进行编码,但对于Unicode XML,只有这五个字符绝对需要注意。我实际使用的是
System.Net.WebUtility.HtmlEncode()
,而不是HttpUtility.HtmlEncode()
因为HttpUtility在部分信任环境中不受支持。换句话说,在沙盒插件中,就像在CRM Online中一样
@GCATNIM正确地提到了这两种方法都将涵盖的“非法字符”
<value>HttpUtility.HtmlEncode("Do you want to subscribe to 1 & 2?")</value>