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" />