You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XML反序列化报错InvalidOperationException:<result xmlns=''>不符合预期的原因及解决办法

错误原因
  1. XML返回的根节点是<result>,但你用来反序列化的根类是ListCategories,XmlSerializer默认要求XML根节点名称和类名完全一致(即期望<ListCategories>),两者不匹配导致抛出该异常。
  2. XML中的子节点是<category>,但你的ListCategories类里的集合属性是CategoriesList,默认序列化/反序列化时会生成<CategoriesList>作为集合的包裹节点,和XML里直接在<result>下排列<category>的结构不匹配,这也会导致反序列化失败。
解决办法

修改类定义,通过XML序列化特性匹配XML结构:

[Serializable]
[XmlRoot("result")] // 指定根节点名称为result
public class ListCategories
{
    // 指定集合中的每个元素对应XML里的<category>节点,无需包裹节点
    [XmlElement("category")]
    public List<Categories> CategoriesList { get; set; } = new List<Categories>();
}

[Serializable]
public class Categories
{
    public int id { get; set; }
    public int parent_id { get; set; }
    public string name { get; set; }
    public string image { get; set; }

    public Categories() { }
    public Categories(int id, int parent_id, string name, string image)
    {
        this.id = id;
        this.parent_id = parent_id;
        this.name = name;
        this.image = image;
    }
}

修改后,XmlSerializer会正确识别XML的<result>根节点,同时将每个<category>节点映射到CategoriesList集合里的Categories对象。

另外要确保XML文件里<category>的子元素名称(如<id>、<parent_id>等)和Categories类的属性名完全一致,XML序列化默认区分大小写。

内容的提问来源于stack exchange,提问作者Vladimir Platun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:15:34