gpt4 book ai didi

c# - 如何在解析 xml (c#) 时进行操作(avg、cnt 等)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:06 25 4
gpt4 key购买 nike

我有以下 xml:

<bookstore>
<book IMDB="11-023-2022">
<title>Hamlet 2</title>
<comments>
<user rating="2">good enough</user>
<user rating="1">didnt read it</user>
<user rating="5">didnt read it but title is good</user>
</comments>
</book>
</bookstore>

我有一个 AverageUserRating 属性,我应该在以下列格式解析时填充该属性,我也不知道如何将评论转换到列表中。我什么都试过了,我不能使用像 xpath 这样的 nuget 包。感谢您的帮助。

return xdoc.Descendants("book").Select(n => new Books()
{
IMDB = n.Attribute("IMDB").Value,
Title = n.Element("title").Value,
//Comments = (List<string>)(n.Elements("user")), ???
//AverageUserRating= ???
}).ToList();

最佳答案

Comments = n.Element("comments").Elements("user").Select(u => u.Value).ToList(),

解释:

1)Element("comments"),返回名为"comments"的子html元素

2) Elements("user"), 返回所有名为"user"的子元素

3).Select(u => u.Value),从每个用户元素中选择值,也就是你需要的注释

4) .ToList() 转换为字符串列表

 AverageUserRating = n.Element("comments").Elements("user").Select(u => u.Attribute("rating").Value).Select(r => Convert.ToInt32(r)).Average()

解释:

1)Element("comments"),返回名为"comments"的子html元素

2) Elements("user"), 返回所有名为"user"的子元素

3).Select(u => u.Attribute("rating").Value),从任意元素中选择属性“rating”的值

4) .Select(r => Convert.ToInt32(r)) 将属性的字符串值转换为int32(注意,如果值不是数字,会抛出异常)

5) .Average() 计算算术平均值并返回 double 值

关于c# - 如何在解析 xml (c#) 时进行操作(avg、cnt 等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58540727/

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