gpt4 book ai didi

c# - C# 中的 XMl 反序列化器

转载 作者:行者123 更新时间:2023-11-30 20:09:53 26 4
gpt4 key购买 nike

我有以下 XML,我只想反序列化 Product1 的流,C# 中的语法是什么?谢谢。我在网上找不到任何文档。

<ArrayOfProductData>
- <ProductData>
<ProductName>product1</ProductName>
<ProductID>1</ProductID>
- <Streams>
<productId>1</productId>
<name>current stream</name>
<id>1</id>
</Streams>
- <Streams>
<productId>1</productId>
<name>stream 1.1</name>
<id>2</id>
</Streams>
</ProductData>
- <ProductData>
<ProductName>product2</ProductName>
<ProductID>2</ProductID>
- <Streams>
<productId>2</productId>
<name>current stream</name>
<id>1</id>
</Streams>
- <Streams>
<productId>2</productId>
<name>stream 1.2</name>
<id>2</id>
</Streams>
</ProductData>
</ArrayOfProductData>

最佳答案

你可以使用 XDocument和要过滤的 XPath:

using System;
using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;

public class ProductStream
{
public int Id { get; set; }
public int ProductId { get; set; }
public string Name { get; set; }
}

class Program
{
static void Main()
{
var streams = XDocument
.Load("test.xml")
.XPathSelectElements("//ProductData[ProductID='1']/Streams")
.Select(s => new ProductStream
{
Id = int.Parse(s.Element("id").Value),
ProductId = int.Parse(s.Element("productId").Value),
Name = s.Element("name").Value
});

foreach (var stream in streams)
{
Console.WriteLine(stream.Name);
}
}
}

关于c# - C# 中的 XMl 反序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623596/

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