【发布时间】:2016-03-01 14:30:29
【问题描述】:
我有一个对象,想将其转换为 XML 并以原始格式显示在页面上。
期望的输出
<Response>
<ResponseCode>100</ResponseCode>
<ResponseDescription>Test</ResponseDescription>
</Reponse>
代码:
public class Response
{
public Response(){}
public string ResponseCode { get; set; }
public string ResponseDescription { get; set; }
}
Page_Load()
{
Response obj = new Response();
obj.ResponseCode = "100";
obj.ResponseDescription = "test";
string xmlString;
XmlSerializer serializer = new XmlSerializer(typeof(Response));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
// exclude xsi and xsd namespaces by adding the following:
ns.Add(string.Empty, string.Empty);
using (StringWriter textWriter = new StringWriter())
{
using (XmlWriter xmlWriter = XmlWriter.Create(textWriter))
{
serializer.Serialize(xmlWriter, obj, ns);
}
xmlString = textWriter.ToString();
}
Response.Write(xmlString);
}
结果是这样的。
100 次测试
我应该怎么做才能得到想要的输出。
【问题讨论】:
-
嗯.. 你可能会用一些工具来查看响应吗?可能这个工具已经只存在 XML 字符串的 value 吗?尝试搜索 raw response(response as it)
-
我猜浏览器只是忽略了 xml 标签。试试
Response.Write (Server.HTMLEncode(xmlString));。 HTMLEncode -
输出是正确的 XML,但您看到的是 渲染 文本。
-
是 Response.Write 进入 HTML 页面吗?您可能需要考虑编码/解码您似乎有一个名为
Response的对象,以及一个名为Response的静态对象? -
@ZoharPeled。做到了:)。但它有 xml 标头 (
<?xml version="1.0"..),我应该删除它
标签: c#