C# 在XML中选择一个列表

C# 在XML中选择一个列表,c#,xml,list,select,C#,Xml,List,Select,我只想从变量中选择user list=“default”或user list=“otherListName”的内容。 比如当我的变量等于default时,我想选择user list=“default”的内容。我所说的内容是指: <list nom="Nom" description="Description" image="no_image.png"/> 我想把这些内容解析成一个列表 <list nom="" description="" image=""/> &l

我只想从变量中选择
user list=“default”
user list=“otherListName”
的内容。 比如当我的变量等于
default
时,我想选择
user list=“default”
的内容。我所说的内容是指:

<list nom="Nom" description="Description" image="no_image.png"/>

我想把这些内容解析成一个列表

<list nom="" description="" image=""/>
<list nom="" description="" image=""/>


<?xml version="1.0" encoding="utf-8"?>
<database>
    <user list="default">
        <list nom="Nom" description="Description" image="no_image.png"/>
    </user>
    <user list="otherListName">
        <list nom="" description="" image=""/>
        <list nom="" description="" image=""/>
    </user>
</database>`

`

我希望我的问题可以理解

您可以使用LINQ to XML,例如,假设
doc
是包含原始XML的变量:

var listName = "default";
var result = doc.Root
                .Elements("user")
                .Where(o => (string)o.Attribute("list") == listName)
                .Elements("list");
请在中查看实况演示:

var raw = @"<?xml version='1.0' encoding='utf-8'?>
<database>
    <user list='default'>
        <list nom='Nom' description='Description' image='no_image.png'/>
    </user>
    <user list='otherListName'>
        <list nom='' description='' image=''/>
        <list nom='' description='' image=''/>
    </user>
</database>";
var doc = XDocument.Parse(raw);

var listName = "default";
var result = doc.Root
                .Elements("user")
                .Where(o => (string)o.Attribute("list") == listName)
                .Elements("list");

foreach(var r in result)
{
    Console.WriteLine(r.ToString());
}

看看这个工作示例,了解如何使用linq从Xml中提取数据并创建列表。
<list nom="Nom" description="Description" image="no_image.png" />