【问题标题】:Read an XML file and store as an object读取 XML 文件并存储为对象
【发布时间】:2023-03-10 14:04:01
【问题描述】:

我是 C#、MVC4、ASP.NET、Entity Framework 的新手。

我有一个要转换为 c# 对象的 XML 文件。

我该怎么做?

为了说明我想对 XML 文件做什么: 我希望在视图中的表中显示 xml 文件的某些部分。 我希望能够选择部分数据并发送到数据库。

目前,我有...

        public ViewResult Index()
    {
        string url = "......";
        var xml = XDocument.Load(url);

        return View(xml);
    }

我的视图模型是: @model IEnumerable 但我在运行时收到错误消息:

传入字典的模型项的类型为“System.Xml.Linq.XElement”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[System.Xml.Linq.XElement”的模型项]'。

【问题讨论】:

标签: c# asp.net xml asp.net-mvc xmlreader


【解决方案1】:

.NET 中有几种不同的处理 XML 的方法。其中包括XML Serializer,它将把一个XML 字符串变成一个设计合理的对象;使用XPath,它允许您通过一系列节点名称指定您想要的信息;或使用XmlReader,它允许您通读和解析XML。

编辑:使用Xlinq,您希望将XElementIEnumerable<XElement> 作为模型传递给视图

@model XElement

@model IEnumerable<XElement>

【讨论】:

  • 是的,还有其他方法可用,我只是列出了一些。
  • 是的,但是 XLINQ 是迄今为止最简单的。 XmlReader 并不简单。
  • 那么将 XML 文档转换为对象的最佳方式(性能方面)是什么?考虑到在 3 秒内我有 3 种不同的意见,为什么有人在我的帖子看起来是个好问题时降低了评分???
  • 如果你正确地设计你的类(或者用[XmlElement]和其他相关属性装饰它们,我提到的将XML转换为对象的最有效方法是使用XmlSerializer。但是,它需要一点正确设置。
  • 目前我有... public ViewResult Index() { string url = "......"; var xml = XDocument.Load(url);返回视图(xml);我现在想知道的是......在 VIEW 中,通常 EF 会放置类似:@model IEnumerable 但是因为我没有使用正确的数据库,我需要在这里放置什么模型XlinQ 对象?我这样做完全错了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多