我正在使用C#创建一个由java第三方应用程序使用的web服务。我的响应值之一包含小于“<”符号,并且它正在转换为“& lt”,看起来像java应用程序无法处理或无法将它们转换回“<”符号。当我在.Net应用程序中使用响应并显示该值时,它工作正常。我试图添加CDATA,但它没有像预期的那样进行。小于web服务响应中的符号c#
实际消息
Date <X1> is too old.
代码添加CDATA
response.Message= "<![CDATA[" + row.Message+ "]]>";
还试图
response.Message= "![CDATA[" + row.Message+ "]]";
没有CDATA(来自了SoapUI输出)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetMessageResponse xmlns="http://xxxx.com/">
<GetMessageResult>
<Message>Date <X1> is too old.</Message>
</GetMessageResult>
</GetMessageResponse>
</soap:Body>
随着CDATA(从输出了SoapUI)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetMessageResponse xmlns="http://xxxx.com/">
<Message>Date <![CDATA[<X1>]]> is too old.</Message>
</GetMessageResult>
</GetMessageResponse>
</soap:Body>
我缺少什么或者是有什么办法可以通过“<”符号,而转型。正如我所说这是一个我们无法控制的第三方应用程序。感谢您的时间和答案。
请参阅wiki以获取html特殊字符列表:https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references要正确使用:System.Net.WebUtility.HtmlDecode(string) – jdweng