Linq到XML查询

βӔḺ*_*ⱫŌŔ 6 .net c# xml linq winforms

我只想说我有一个如下所示的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<Customers>
  <Customer Name="Jason Voorhees" WeaponPurchased="Machette" SalePrice="499.90" />
  <Customer Name="Michael Myers" WeaponPurchased="Kitchen Knife" SalePrice="96.75" />
</Customers>
Run Code Online (Sandbox Code Playgroud)

Linq可以做这样的事吗?

foreach customer in Customers select WeaponPurchased where Name equals "Jason Voorhees"
Run Code Online (Sandbox Code Playgroud)

要么:

foreach customer in Customers select customer
label1.Text += "Name: " + customer.Name + Environment.NewLine + "WeaponPurchased: " + customer.WeaponPurchased;
Run Code Online (Sandbox Code Playgroud)

我之前在MSDN上看过这种类型的查询,但我最喜欢的链接现在导致了错误的页面,我仍然试图找到这些特定的例子.任何帮助深表感谢,

谢谢

Lad*_*nka 5

试试这个:

var doc = XDocument.Load(Path.Combine(path, "file.xml"));
var query = from c in doc.Descendants("Customer")
            where c.Attributes("Name").Single().Value == "Jason Voorhees"
            select c.Attributes("WeaponPurchased").Single().Value;
Run Code Online (Sandbox Code Playgroud)

它将返回IEnumerable<string>武器的名称.