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 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' />
         <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>