10赞
919
当前位置:  开发笔记 > 编程语言 > 正文

XML反序列化期间的"未知节点:VarName"

如何解决《XML反序列化期间的"未知节点:VarName"》经验,为你挑选了1个好方法。

我有这个示例XML文件,我需要反序列化:



    
        TohleJeString
        24
        29.6
        17.11.1968
        c
    
    
        TohleJeTakéString
        17
        5.9
        06.07.1415
        p
    
    
        NoATohleTaké
        2
        78.5
        06.12.1774
        x
    

这是具有另一个类列表的根类:

[XmlRoot("CollectionOfUnits", IsNullable = false)]
public class XmlExampleCollectionOfUnits
{
    [XmlArray("Unit")]
    public List Units { get; set; }
    public XmlExampleCollectionOfUnits(List units)
    {
        Units = units;
    }
    public XmlExampleCollectionOfUnits()
    {
    }
}

上面一节课的结构:

public class XmlExampleBasicUnit
{
    public String StringVar { get; set; }
    public Int32 Int32Var { get; set; }
    public Double DoubleVar { get; set; }
    public DateTime DateTimeVar { get; set; }
    public Char CharVar { get; set; }
}

我在XmlSerializer的文档中使用这些函数,这些函数在调试期间很有用(这是从输出调用的地方):

private void serializer_UnknownNode(object sender, XmlNodeEventArgs e)
{
    Console.WriteLine("Unknown Node:" + e.Name + "\t" + e.Text);
}

private void serializer_UnknownAttribute(object sender, XmlAttributeEventArgs e)
{
    XmlAttribute attr = e.Attr;
    Console.WriteLine("Unknown attribute " + attr.Name + "='" + attr.Value + "'");
}

这是输出:

Unknown Node:StringVar  
Unknown Node:Int32Var   
Unknown Node:DoubleVar  
Unknown Node:DateTimeVar    
Unknown Node:CharVar    
Unknown Node:StringVar  
Unknown Node:Int32Var   
Unknown Node:DoubleVar  
Unknown Node:DateTimeVar    
Unknown Node:CharVar    
Unknown Node:StringVar  
Unknown Node:Int32Var   
Unknown Node:DoubleVar  
Unknown Node:DateTimeVar    
Unknown Node:CharVar

我认为结构编码正确.我错过了一些名称吗?



1> Marc Gravell..:

这里有3个问题;

你想要的XmlElementAttribute不是XmlArrayAttribute,因为你只有一级嵌套,所以:[XmlElement("Unit")]

您的日期无效为xml格式的日期; 要么适当地格式化它们(ISO 8601,所以:1968-11-17等),或者之后使用string而不是DateTime手动转换它

char类型是不是一个不错的选择-它本质上是一个整数类型; 使用string替代

随着这些变化:它应该工作.

推荐阅读
  • 有关于JSON的一些资料 ... [详细]
  • Java中json使用方法_动力节点Java学院整理
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,json是个非常重要的数据结构,在web开发中应用十分广泛。下面通过本文给大家讲解Java中json使用方法,感兴趣的朋友一起看看吧 ... [详细]
  • 这篇文章主要介绍了JSON与XML的区别对比及案例应用的讲解。本文涉及到XML和JSON优缺点讲解及对比,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧 ... [详细]
  • 最近在学习一些基本的Linux指令,在这里总结一下,在搭环境中常用的一些指令,熟悉这些指令就基本能够使用CentOS进行日常操作了 ... [详细]
  • RichInternetApplication(富互联网应用程序,简称RIA),一种全新的Web应用程序架构,它结合了桌面软件良好的用户体验和web应用程序易部署的优点,很快获得了企业的青睐。近年来,各大开发平台供应商相继推出新的技术来支持RIA的开发,从Ajax到SilverLight,从Apollo和AIR到Flex和Flash,从JavaFX到Laszlo,各种技术粉墨登台,以期 ... [详细]
  • JSON学习笔记第1/2页 ... [详细]
  • 如何解决《具有品牌中心的Bootstrap4导航栏,左侧,中心和右侧均具有链接》经验,为你挑选了1个好方法。 ... [详细]
  • 如何解决《StickyBar不能做浮动:对》经验,为你挑选了1个好方法。 ... [详细]
  • 如何解决《有条件地渲染关闭标签以模拟日历行为》经验,为你挑选了1个好方法。 ... [详细]
  • 如何解决《无法使用Codeception在多站点上使用wp_query》经验,您有什么比较好的解决方法? ... [详细]
  • 开发人员一定要加入收藏夹的网站,比较不错。大家可以参考一下。 ... [详细]
  • Linux基础命令日常积累
    Linux命令虽然用处很多,用过这么多次但是对其步骤、命令还是不记得,每次还是要到处找资料,下面小编把本次linux生产环境搭建分享在脚本之家平台,供大家参考 ... [详细]
  • 这篇文章主要为大家详细介绍了linux定时任务基础命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ... [详细]
  • 安装配置Zabbix来监控MySQL的基本教程
    这篇文章主要介绍了安装配置Zabbix来监控MySQL的基本教程,Zabbix拥有web页面端显示数据的功能,文中的安装环境为CentOS系统,需要的朋友可以参考下 ... [详细]
  • 这篇文章主要为大家分享了CentOS6.6下mysql5.7.13winx64安装配置方法图文教程,感兴趣的朋友可以参考一下 ... [详细]
devbox
台艾辉_435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4