gpt4 book ai didi

c# - 使用 XDocument 解析 xml - 反序列化

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

我有以下 xml

<?xml version="1.0" encoding="UTF-8"?>
<Actions>
<add order-id="1" symbol="ABC" price="5" quantity="200" />
<add order-id="2" symbol="123" price="15" quantity="100" />
<add order-id="3" symbol="ABC" price="5" quantity="300" />
<add order-id="4" symbol="ABC" price="7" quantity="150" />
<edit order-id="1" price="7" quantity="200" />
<remove order-id="4" />
<add order-id="5" symbol="123" price="17" quantity="300" />
<add order-id="6" symbol="123" price="12" quantity="150" />
<edit order-id="3" price="7" quantity="200" />
<remove order-id="5" />
</Actions>

我需要使用 linq 将其解析为以下对象结构:

 internal class OrderAction
{
private readonly Action action;
private readonly Order order;
public Action Action { get { return action; }}
public Order Order { get { return order; }}

public OrderAction(Action action,Order order)
{
this.action = action;
this.order = order;
}
}

其中一个 Action 是public enum Action { ADD, REMOVE, EDIT }

命令如下:

class Order
{
public Order(long orderId, String symbol, int price, int quantity)
{
this.orderId = orderId;
this.symbol = symbol;
this.price = price;
this.quantity = quantity;
}

public long orderId { get; private set; }
public String symbol { get; private set; }
public int price { get; private set; }
public int quantity { get; private set; }
}

我需要将 xml 加载到 xdocument 中,并在文件中找到所有 IEnumerable of orderactions。如果不求助于序列化属性,我该怎么做?

最佳答案

在“编辑和删除”的情况下,缺少的 Order 属性的值应该是什么?我假定 stringint< 的默认值...

这将是 LINQ 语句(假设您的 XDocument 称为 doc):

var result = doc
.Root
.Elements()
.Select(elem => new OrderAction
(
(Action)Enum.Parse(typeof(Action), elem.Name.LocalName.ToUpper()),
new Order
(
elem.Attributes("order-id").Select(x => long.Parse(x.Value)).FirstOrDefault(),
elem.Attributes("symbol").Select(x => x.Value).FirstOrDefault(),
elem.Attributes("price").Select(x => int.Parse(x.Value)).FirstOrDefault(),
elem.Attributes("quantity").Select(x => int.Parse(x.Value)).FirstOrDefault()
)
));

关于c# - 使用 XDocument 解析 xml - 反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18767959/

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