【问题标题】:why i lose xml header on asp.net web service为什么我在 asp.net Web 服务上丢失了 xml 标头
【发布时间】:2013-05-07 12:49:33
【问题描述】:

我有一个 web 服务方法,我转换为 xml 以查看 asp 页面我的 xml 转换器方法:

        SqlDataAdapter MyDataAdapter;
        MyDataAdapter = new SqlDataAdapter(com.CommandText, SqlConnection);
        DataSet dsCategories = new DataSet();
        MyDataAdapter.SelectCommand.CommandTimeout = 1000;

        MyDataAdapter.Fill(dsCategories, "Category");
        dsCategories.WriteXml(Server.MapPath("Category.xml"));  

        System.IO.StringWriter writer = new System.IO.StringWriter();
        dsCategories.WriteXml(writer, XmlWriteMode.WriteSchema);
        string xmlFromDataTable = writer.ToString();
        response.Write(xmlFromDataTable);
        response.ContentType = "text/xml; charset=utf-16";

错误是

在第 1846 行第 19 列:XML 声明只允许在文档的开头

XML 没有 XML 声明标头。我该如何解决?

【问题讨论】:

    标签: xml web-services


    【解决方案1】:

    我怀疑在您的 XML 之前的页面中写入了一些其他内容。

    也许如果您尝试关注(添加 response.Clear()):

    string xmlFromDataTable = writer.ToString();
    response.Clear();
    response.ContentType = "text/xml; charset=utf-16";
    response.Write(xmlFromDataTable);
    

    http://msdn.microsoft.com/en-us/library/system.web.httpresponse.clear.aspx

    【讨论】:

    • 谢谢,但我认为它不起作用,我发现错误是因为 '&' 符号。因为我的数据包含多个 '&' 符号。如何解决?
    • 您需要转义的 & 符号,但如果您的 XML 文件已经格式正确,那么它应该已经转义了。您可以使用 IE 在文件系统上打开 XML 文件而不会出现任何错误/警告吗?这里几乎涵盖了任何可能出错的地方。 stackoverflow.com/questions/543319/how-to-return-xml-in-asp-net
    • XML 文件确实打开了我不明白错误但我批准了另一种方式,我使用列表获取数据感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2021-08-24
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多