gpt4 book ai didi

c# - 在 C# 中使用 LINQ 查询 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:09:22 26 4
gpt4 key购买 nike

我有一个针对我的 XML 文件的 LINQ 查询,它看起来像这样

  IEnumerable<XElement> c = from cli in xEl.Elements(ns + "client") 
where cli.Element(ns+"ID").Value == (((Client)cComboBox.SelectedItem).Id +"")
select cli;

它工作正常..接下来我想迭代该数据,所以我这样做

           foreach (XElement el in c)
{

}

我的 xml 文件看起来像这样

 <client>
<ID>1</ID>
<name>Andrej</name>

通过那次迭代,我想提取客户值(id -> 1,name -> Andrej)

我的猜测是将 el.Element("name").Value 放在循环的中间,但这不起作用...哦,顺便说一句:我正在用 C# 做这件事..

我该怎么办?

顺便说一句:如您所见,我是 linq 的新手,所以我认为我在这方面偏离了正轨...

如有任何帮助,我们将不胜感激!!TNX!

最佳答案

如果我使用这段代码:

  public void Run()
{
string fileToLoad = this.GetType().Name + ".xml";

XElement root = XElement.Load(fileToLoad);

var selected = from cli in root.Elements("client")
where cli.Element("ID").Value == "1"
select cli;

System.Console.WriteLine("Selected:");
foreach (var d in selected)
Console.WriteLine("{0}", d.ToString());

System.Console.WriteLine("\nitems:");
foreach (var d in selected)
{
Console.WriteLine("id: {0}", d.Element("ID"));
}
}

还有这个源数据:

<root>
<client>
<ID>1</ID>
<name>Andrej</name>
</client>
<client>
<ID>2</ID>
<name>William</name>
</client>
<client>
<ID>3</ID>
<name>Kate</name>
</client>
</root>

然后...我得到这个结果:

Selected:
<client>
<ID>1</ID>
<name>Andrej</name>
</client>

items:
id: <ID>1</ID>

关于c# - 在 C# 中使用 LINQ 查询 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com