Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用MVC读取Xml文件中的子节点_C#_Xml_Asp.net Mvc_Linq - Fatal编程技术网

C# 如何使用MVC读取Xml文件中的子节点

C# 如何使用MVC读取Xml文件中的子节点,c#,xml,asp.net-mvc,linq,C#,Xml,Asp.net Mvc,Linq,##XML FİLE## 如何读取子节点?我想创建一个表。我将使用这些数据创建一个表。我想把它列在清单上。 我编辑了。。 错误:其他信息:找不到第3列 错误在哪里?我想读取xml文件。当我在数据集中读取您的xml时,我得到了两个表 表1一行三列的“标题” 表2两行四列“胶片” 您阅读表[0](3列),然后尝试阅读第4列(共3列) 您需要更改循环-因为您需要从两个表加载数据。您可以使用Linq to XML轻松检索Films集合,如下所示: XDocument xdoc = XDocument.L

##XML FİLE##

如何读取子节点?我想创建一个表。我将使用这些数据创建一个表。我想把它列在清单上。 我编辑了。。 错误:其他信息:找不到第3列


错误在哪里?我想读取xml文件。

当我在数据集中读取您的xml时,我得到了两个表 表1一行三列的“标题” 表2两行四列“胶片”

您阅读表[0](3列),然后尝试阅读第4列(共3列)


您需要更改循环-因为您需要从两个表加载数据。

您可以使用
Linq to XML
轻松检索
Films
集合,如下所示:

XDocument xdoc = XDocument.Load(xmldata);
List<Films> result = xdoc.Descendants("film")
              .Select(x =>
                        {
                           var film = x;
                           var title = x.Parent;
                           return new Film
                           {
                               month = (int)title.Attribute("month"),
                               year = (string)title.Attribute("year"),
                               day = (string)film.Attribute("day"),
                               morning = (string)film.Element("morning"),
                               night = (string)film.Element("night")
                           };
                        }
                   ).ToList();

您可以使用以下内容解析XML:

var xml = XDocument.Load(xmlFile);
var films = xml.Descendants("film").Select(d => new Films()
    {
        month = Convert.ToInt32(d.Parent.Attribute("month").Value),
        year = d.Parent.Attribute("year").Value,
        day = d.Attribute("day").Value,
        morning = d.Element("morning").Value,
        night = d.Element("night").Value
    });

查看实际操作。

您能更新您的问题并将其格式设置得更好吗?我不能真正准备好它,因为它有点“混淆”(无效的XML和一些代码,“类”没有类,…)@ChrFin我编辑了一个月,一年成功了,但是白天、早上、晚上都没有成功。@SergenS-发生了什么错误?你能检查一下提琴吗,我刚贴了,看看有什么错误?
public int month{ get; set; }
public string year{ get; set; }
public string day { get; set; }
public string morning { get; set; }
public string night{ get; set; }
XDocument xdoc = XDocument.Load(xmldata);
List<Films> result = xdoc.Descendants("film")
              .Select(x =>
                        {
                           var film = x;
                           var title = x.Parent;
                           return new Film
                           {
                               month = (int)title.Attribute("month"),
                               year = (string)title.Attribute("year"),
                               day = (string)film.Attribute("day"),
                               morning = (string)film.Element("morning"),
                               night = (string)film.Element("night")
                           };
                        }
                   ).ToList();
List<Films> result2 = (from x in xdoc.Descendants("film")
                       let film = x
                       let title = x.Parent
                       select new Film
                       {
                           month = (int)title.Attribute("month"),
                           year = (string)title.Attribute("year"),
                           day = (string)film.Attribute("day"),
                           morning = (string)film.Element("morning"),
                           night = (string)film.Element("night")
                       }).ToList();
var xml = XDocument.Load(xmlFile);
var films = xml.Descendants("film").Select(d => new Films()
    {
        month = Convert.ToInt32(d.Parent.Attribute("month").Value),
        year = d.Parent.Attribute("year").Value,
        day = d.Attribute("day").Value,
        morning = d.Element("morning").Value,
        night = d.Element("night").Value
    });