如何在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类,详细介绍…
您可以尝试使用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,类别等