手写XML有问题。 XML是由CONCAT字符串产生,因为这:在XML属性中替换非法字符的最简单方法
ReturnXML += "<agentchimique ";
ReturnXML += "id_prod=\"" + Produit.Id + "\" ";
ReturnXML += "nom_com_prod=\"" + Produit.NomComProd + "\" ";
ReturnXML += "nom_four=\"" + Produit.Fournisseur.NomFour + "\" ";
ReturnXML += "PhraseR=\"" + Produit.PhrasesR.Replace("<br/>", "@") + "\" ";
ReturnXML += "PhraseS=\"" + Produit.PhrasesS.Replace("<br/>", "@") + "\" ";
ReturnXML += "numfds_prod=\"" + Produit.NumfdsProd.ToString() + "\" ";
ReturnXML += "transverse_prod=\"" + Produit.TransverseProd.ToString() + "\" ";
这只是整个XML的几个部分,你可以看到,所有的数据都是在属性... 但有些参数Produit.PhrasesR或Produit.PhrasesS可能包含非法字符<>或&。
该XML以文本形式存储在SQL中并由SQL服务器执行,存储过程sp_xml_preparedocument可在报表服务中读取。 该XML也可用作数据生成为网页。
那么,什么是解决这个编码问题的最快最简单的解决方案,因为我知道我不能重写一个真正的兼容XML(我没有任何时间),而且这个XML被用在许多地方我的项目(替换角色将是最简单的,但它需要在报告和网页中重新替换)。
感谢您的帮助。
感谢您的SecurityElement.Escape,但我需要在报表服务中读取XML时反转此操作?如果是我会创建XML,我会使用XDocument,但我经常从懒惰的开发者检索旧项目:) –
@ User.Anonymous我不确定。也许不会。你必须尝试一下。 – Ray