c# - 在 XML 中选择列表

标签 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=""/>
<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,例如,假设 docXDocument包含原始 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/

相关文章:

c# - ASP.NET MVC 2.0 - ViewModel 中的数据在发布后丢失

r - 使用 R 将 XML 转换为 JSON

python:将16个元素的列表处理成8个元素的列表

c# - 静态内部类是否有性能成本?

c# - 初始化一个集合,这样用户就不必

c# - Linq & boolean 函数

java - 数量字符串(复数)的格式为 ="false"

javascript - 如何仅在 Blogger 的搜索页面中显示文本?

python - 从列表中两次尝试中查找一个元素出现的最大总和

python - 如何用Python3制作自动评分器