我只想从变量中选择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
是 XDocument
包含原始 XML 的变量:
var listName = "default";
var result = doc.Root
.Elements("user")
.Where(o => (string)o.Attribute("list") == listName)
.Elements("list");
查看 dotnetfiddle
中的现场演示:
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());
}
输出:(对于 listName = "default"
)
<list nom="Nom" description="Description" image="no_image.png" />
关于c# - 在 XML 中选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636388/