如何在C#中使用属性反序列化XML

问题描述 投票:0回答:1

我有一个看起来与此类似的XML文件:

<data label="product data">
    <price min="10" max="60">35</price>
</data>

我正在.Net Core中使用System.Xml.Serialization。我正在尝试反序列化XML。对于这样的常规XML:

<data>
   <price>35</price>
</data>

以下方法:

public T DeserializeXml<T>(string input)
{
    var xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(T));

    using var stringReader = new StringReader(input);
    var xmlReader = new XmlTextReader(stringReader);
    return (T) xmlSerializer.Deserialize(xmlReader);
}

工作正常,并将其解析为特定的类对象。但是,当XML包含属性时,它不能正常工作,并且在尝试将其反序列化为对象时会崩溃。

这是我的课程:

[XmlType("data")]
public class ProductInfo
{
    [XmlElement(ElementName = "price")]
    public string Price{ get; set; }
}

因此,如何检索带有属性的有效XML,以及如何存储其属性值?不确定如何使用System.Xml.Serialization库执行此操作。

c# xml xml-parsing xmlserializer
1个回答
0
投票

通过查看XML,模型应该看起来像

© www.soinside.com 2019 - 2024. All rights reserved.