如何在 C#/.net 中将 XML 数据链接在一起



我在处理一行代码时遇到问题。

我有一个具有以下数据的 XML(ID 0、1、2、3、4 在此 XML 中都是相同的。这在另一个生成的 XML 中可能有所不同(:

<dissasemblypart>
<ID>0</ID>
<PartType>Tube</PartType>
</dissasemblypart>
<dissasemblypart>
<ID>5</ID>
<PartType>FlatSheetMetal</PartType>
</dissasemblypart>

现在我想通过XML中的ID选择零件类型,但我不知道如何实现它。 我已经有了xml读取代码,所以我将跳过该部分。我想要实现的只是代码将 ID 和 PartType 连接在一起。

var PartType = partsFromFile.Descendants("PartType");
var PartID = partsFromFile.Descendants("ID");
foreach (var id in PartID)
{
foreach (var type in PartType)
{
WriteLine($"{id.Value}{type.Value}");
}
}

这是我目前拥有的代码,它返回每个 ID 的每个 PartType,这很接近,但我知道它不是我想要返回的。

以正确的方式推动将不胜感激。

您可以使用 Linq 到 Xml。

var result = partsFromFile.Descendants("dissasemblypart")
.Where(x=>Convert.ToInt32((string)x.Element("ID"))==idToSearch)
.Select(x=>(string)x.Element("PartType"))
.First(); 

可以在 C# 对象中使用 XML 反序列化。在这种情况下,我会在"自定义"对象列表中反序列化它,以便充分利用列表的潜力,或者希望根据您必须执行的操作进行 LINQ。 我在下面附上一个用于使用 XML 反序列化的链接: 如何将 xml 反序列化为对象

如果您查看如何使用 XML 数据,那么正确的方法是创建一个 DTO 类。DTO 类使用 XML 反序列化程序读取 XML 数据。然后,您可以将该数据复制到另一个类。

最新更新