【问题标题】:How to download a xml content in a xml file [duplicate]如何下载xml文件中的xml内容[重复]
【发布时间】:2012-08-08 11:08:57
【问题描述】:

可能重复:
How to download xml file in asp.net using C#

任何人都可以帮助如何下载 xml(它是字符串)。我正在使用 MVC3

我的代码;

 public FileResult Download(string id)
    {  
        var model = service.GetAllDefinitions().First(x => x.ID == id);
        var definitionDetails = new StatisticDefinitionModel(model);
        string xmlString = definitionDetails.ToXml;
     //string presented xml  

        string fileName = definitionDetails.Name + ".xml";

            var stream = new MemoryStream();

            var writer = XmlWriter.Create(stream);
            writer.WriteRaw(xmlString);
            stream.Position = 0;
            var fileStreamResult = File(stream, "application/xml", fileName);
            return fileStreamResult; 

    }

但这不起作用。给出一个错误

错误:

XML 文档必须有一个顶级元素。错误处理资源

谢谢,

【问题讨论】:

  • xml 用于创建 table.xml 工作正常,已上传到 db 表中。
  • 当我从 xmlString 复制内容时,它工作正常。但是当我尝试下载它时出现错误

标签: xml asp.net-mvc-3 c#-4.0


【解决方案1】:

这里不需要 xml 流,只需返回字节即可。

public FileResult Download(string id)
{  
    var model = service.GetAllDefinitions().First(x => x.ID == id);
    var definitionDetails = new StatisticDefinitionModel(model);
    string xmlString = definitionDetails.ToXml;
    string fileName = definitionDetails.Name + ".xml";


    return File(Encoding.UTF8.GetBytes(xmlString), "application/xml", fileName);
}

【讨论】:

  • 我也尝试过这种方式。遇到类似无法显示 XML 页面的错误 无法使用 XSL 样式表查看 XML 输入。请更正错误,然后单击“刷新”按钮,或稍后重试。 -------------------------------------------------- ------------------------------ 名称以无效字符开头。错误处理资源'file:///C:/Users/asubramaniam/AppData/Local/Micros...
  • 好的,所以您的 xml 定义有错误。在此处粘贴 xml。可能错误在根节点上。
  • 我检查了 xml.. 没有错误,当我从 xmlString 获取内容时,它的工作正常。它发生在我所有的 xml 文件,即我的数据库中。是否有任何浏览器问题?
  • 我认为问题可能是根元素上的一些命名空间声明。消息“无法使用 XSL 样式表查看 XML 输入”表示用于您的 xml 的某些 XSL 不可用或有错误。但也许 xml 的默认浏览器 xsl 可能会导致问题。很难说。在此处粘贴 xml 根声明。
  • 好的。 1) 你必须为 xmlns 和 xsi:schemaLocaton 设置一个绝对 uri。在您的情况下,您必须在 g.gpp... 前加上“http://”。 2)有一个';'在不应该存在的 xmlns 属性之后。 3) 更正此问题后,xml 在我的浏览器上运行良好。尝试一下,看看会发生什么。如果它不起作用,您需要检查浏览器接收到的响应(例如寻找编码标头)或尝试将编码更改为 utf-8。对于文件和流 utf-8 几乎是标准,只有在有充分理由的情况下才使用另一种编码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
  • 2010-10-24
  • 1970-01-01
  • 2019-01-02
相关资源
最近更新 更多