gpt4 book ai didi

C# XML - 一次读取多个元素

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

我有这个 xml 文件:

<?xml version="1.0" ?>
<object>
<name>Sphere</name>
<material>Steel</material>
<device Id="01">
<model>Model 1</model>
<color>Red</color>
</device>
<device Id="02">
<model>Model 2</model>
<color>Blue</color>
</device>
</object>

我希望能够在 for 循环中读取每个设备的型号和颜色。我的代码一次只能读取一个值(模型或值),我必须执行两次循环。

我希望应该有一个更优雅的解决方案。

var xDoc = XDocument.Load(@"C:\_Projects\AProjectsCS\XML_Tutorial\Sample.xml");

IEnumerable<XElement> list1 = xDoc.Root.Descendants("model");
IEnumerable<XElement> list2 = xDoc.XPathSelectElements("//color");

foreach (XElement el in list1)
Console.WriteLine(el.Value);

foreach (XElement el in list2)
Console.WriteLine(el.Value);

谢谢,尼克

最佳答案

只需从每个设备元素中选择模型和颜色元素值(您可以使用匿名类型,如下所示,或创建您的自定义 Device 类来保存此数据):

var xDoc = XDocument.Load(@"C:\_Projects\AProjectsCS\XML_Tutorial\Sample.xml");
var devices = from d in xDoc.Root.Elements("device")
select new {
Model = (string)d.Element("model"),
Color = (string)d.Element("color")
};

foreach(var device in devices)
{
Console.WriteLine(device.Model);
Console.WriteLine(device.Color);
}

关于C# XML - 一次读取多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20918922/

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