如何在ASP.Net中基于Key字段从XML文件中获取值

本文关键字:字段 XML 文件 获取 Key ASP Net | 更新日期: 2023-09-27 18:13:19

我是XML新手。我有一个如下的文件,里面列出了课程的细节。

<?xml version="1.0" encoding="UTF-8"?>
<RESPONSE>
  <SINGLE>
    <KEY name="courses">
      <MULTIPLE>
        <SINGLE>
          <KEY name="id">
            <VALUE>3</VALUE>
          </KEY>
          <KEY name="category">
            <VALUE>6</VALUE>
          </KEY>
          <KEY name="shortname">
            <VALUE>XYZ101</VALUE>
          </KEY>
          <KEY name="fullname">
            <VALUE>BUS101: Introduction </VALUE>
          </KEY>
            <KEY name="description">
            <VALUE>This is a dummy text for description;</VALUE>
          </KEY>
        </SINGLE>
        <SINGLE>
          <KEY name="id">
            <VALUE>4</VALUE>
          </KEY>
          <KEY name="category">
            <VALUE>7</VALUE>
          </KEY>
          <KEY name="shortname">
            <VALUE>ABC101</VALUE>
          </KEY>
          <KEY name="fullname">
            <VALUE>ABC101: ABC Category</VALUE>
          </KEY>
          <KEY name="description">
            <VALUE>Detailed introduction to the basic principles and methods ;</VALUE>
          </KEY>
          </SINGLE>
</RESPONSE>

我想阅读这个文件并在asp页面中显示如下内容,请帮助。我尝试了如何从xml文件中读取单个节点值的示例。但是它没有返回任何值。我的预期输出如下所示Id,类别,短名,全名,描述3,6, XYZ101, BUS101:介绍,这是一个虚拟的文字描述4、7、ABC101、ABC101: ABC类,详细介绍…

如何在ASP.Net中基于Key字段从XML文件中获取值

您可以尝试使用XDocument:

XDocument doc = System.Xml.Linq.XDocument.Load(yourXMLFile);
            var ab = doc.Root.Descendants("SINGLE").Descendants("KEY").Descendants("MULTIPLE").Descendants("SINGLE").Select(x => new { values = x.Elements().ToList() }).ToList();
            var newList = ab.Select(y => new
            {
                values = y.values.Select(z =>
                    new
                    {
                        key = z.Attribute("name").Value,
                        value = z.Elements("VALUE").FirstOrDefault().Value
                    }).ToList()
            }).ToList();

它会给你xml节点的id,类别等