gpt4 book ai didi

xml - 使用 Linq 查询 XML 文档

转载 作者:行者123 更新时间:2023-12-04 05:49:11 24 4
gpt4 key购买 nike

我不经常使用 Linq 来查询 XML,而且我对 XML 也没有很多经验。我想做的是查询这个简单的 XML 文档...

<AlarmParameters>
<Parameter>
<ParameterName>ConsecutivePoints</ParameterName>
<Points>30</Points>
<AllowEdit>true</AllowEdit>
<Caption>Consecutive Points</Caption>
</Parameter>

<Parameter>
<ParameterName>SigmaCount</ParameterName>
<Count>1</Count>
<AllowEdit>true</AllowEdit>
<Caption>Number of Sigmas</Caption>
</Parameter>
</AlarmParameters>

... 并生成一个“参数”类列表,每个类都包含 XML 示例中显示的属性。使用 LinqPad,我已经做到了这一点,但我真的不知道如何完成。
string xmlFragment = "<AlarmParameters><Parameter><ParameterName>ConsecutivePoints</ParameterName><Points>30</Points><AllowEdit>true</AllowEdit><Caption>Consecutive Points</Caption></Parameter><Parameter><ParameterName>SigmaCount</ParameterName><Count>1</Count><AllowEdit>true</AllowEdit><Caption>Number of Sigmas</Caption></Parameter></AlarmParameters>";

StringReader strReader = new StringReader(xmlFragment);

XDocument xmlDoc = XDocument.Load(strReader);

var result = from parameter in xmlDoc (not sure what Linq to put here next)

最佳答案

您可以通过查看 LINQ to XML overview 找到一些不错的信息。在 MSDN 上。这是使用 Descendants 可以完成的一种方法操作符拉出元素集合,以及 Element运算符来提取集合中每个项目的子属性:

var result =
from parameter in xmlDoc.Descendants("Parameter")
select new {
ParameterName = (string) parameter.Element("ParameterName"),
Points = (int?) parameter.Element("Points") ?? 0,
Count = (int?) parameter.Element("Count") ?? 0,
AllowEdit = (bool) parameter.Element("AllowEdit"),
Caption = (string) parameter.Element("Caption")
};

这只是创建匿名类实例,但您可以替换为 select new MyParameterClassName为您的参数类。

关于xml - 使用 Linq 查询 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285172/

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