C#xml到linq的查询
本文关键字:查询 linq C#xml | 更新日期: 2023-09-27 18:24:57
我仍然在为XML到Linq的语法而挣扎。
我有一个XML结构,试图在其中查询产品的不同价格。
这是XML:
<product>
<description>productname</description>
<properties>
<property>
<key>RetailPrice</key>
<value>100.00 $</value>
</property>
<property>
<key>StockPrice</key>
<value>80.00 $</value>
</property>
</properties>
</product>
XML文件中有大量的<product>
,所以我试图查询特定产品名称的价格。
有人知道怎么做吗?
您可以使用XElement
类。请参阅相关文章:当XElement具有相同名称时,如何使用LINQ查询来获取XElement值。
做一些类似的事情:
string[] prices = xml.Elements("product")
.Where(x => x.Element("description").Value == productName)
.Element("properties")
.Elements("property")
.Where(x => x.Element("key").Value == "RetailPrice")
.Select(x => x.Element("value").Value)
.ToArray();
您可以使用C#的null传播操作符进行额外的null检查。
string[] prices = xml.Elements("product")
.Where(x => x.Element("description")?.Value == productName)
.Element("properties")
.Elements("property")
.Where(x => x.Element("key")?.Value == "RetailPrice")
.Select(x => x.Element("value").Value)
.ToArray();