首页 > 其他分享 >用XmlSerializer.Deserialize将XML转实体遇到的问题

用XmlSerializer.Deserialize将XML转实体遇到的问题

时间:2023-06-09 16:02:25浏览次数:65  
标签:XML fs Deserialize 实体 result new XmlSerializer

  • 1、命名空间的问题

    • 1.1 XML示例:
    • 1.2 反序列化代码:


      点击查看源代码

        ``` 
                public static object DeserializeFromXml<T>(string xmlFilePath)
                {
                    object result = null;
                    using (FileStream fs = new FileStream(xmlFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        XmlSerializer xs = new XmlSerializer(typeof(T));
                        result = xs.Deserialize(fs);
                        fs.Close();
                        fs.Dispose();
                    }
                    return result;
                }
        ```
        </details>
      
    • 1.3 程序报异常:
    • 1.4 修复异常:
      将1.2中代码里new XmlSerializer处增加命名空间;如下:
      XmlSerializer xs = new XmlSerializer(type, "http://www.w3.org/2000/09/xmldsig#");
  • 2、反序列化成实体时,List为空的异常

    • 2.1 XML实例:
    • 2.2 实体示例:
    • 2.3 程序报异常:
      最终实体里的两个List均为空(count=0);
    • 2.4 修复异常:

    XmlArrayAttribute + XmlArrayItemAttribute 在序列化具有外部容器元素的集合时应使用。当没有外部容器时,应使用 XmlElementAttribute;

    将实体List前面增加注解XmlElementAttribute,如下图:

标签:XML,fs,Deserialize,实体,result,new,XmlSerializer
From: https://www.cnblogs.com/blackstar2003/p/17469384.html

相关文章

  • Tomcat中web.xml文件的详细说明
    2008年03月03日08:25:48Tomcat中web.xml文件的详细说明Tomcat中web.xml文件的详细说明<?xmlversion="1.0"encoding="GB2312"?><!--Web.xml依次定议了如下元素:<web-app><display-name></display-name>定义了WEB应用的名字<descript......
  • Java利用xml将大批量数据导出到excel的一个方法
    笔者在Java开发中常常会遇到将数据库数据导出到Excel的要求,比如在我的一个项目中,客户要求所有查询结果都可以导出到Excel,对于数据量不大的(几万条),这比较容易实现,但对于数据量比较大的(几十万及以上,具体要看导出内容的字段个数和长短),则在数据库查询和生成excel文件上都会有麻烦。......
  • javascript操作xml(增删改查)例子代码
    关键字:javascript操作xml(增删改查)自己做了一个小东西,不是很好,但是对初学来说是一个不错的例子!包括了stu.hta(是HTML应用程序);stu.xml注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!!文件stu.hta代码如......
  • 【转载】xsd文件验证xml的java实现
    importjava.io.File;importjava.io.IOException;importjavax.xml.transform.Source;importjavax.xml.transform.stream.StreamSource;importjavax.xml.validation.Schema;importjavax.xml.validation.SchemaFactory;importjavax.xml.validation.Validator;i......
  • springboot 引入jackson-dataformat-xml 接口都返回XML了
    springboot版本2.6.10springboot引入acksonDataformatXML后原本返回json的却返回xml<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> </dependency>————————————————解......
  • Web.xml 4.0
    Web.xml4.0<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLoc......
  • python 解析HTML和XML文档
    一、BeautifulSoupBeautifulSoup是一个Python包,用于解析HTML和XML文档。它可以快速而方便地从网页中提取信息,并以易于使用的方式对其进行处理。它支持各种解析器,包括内置的Python解析器和第三方解析器,例如lxml和html5lib。二、对标签提取代码示列以下是使用BeautifulSoup解析H......
  • 深入理解注解驱动配置与XML配置的融合与区别
    摘要:本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异。本文分享自华为云社区《Spring高手之路2——深入理解注解驱动配置与XML配置的融合与区别》,作者:砖业洋__。本文旨在深入探讨Spring框架的注解驱动配置与XML配置,揭示两者之间的相似性与差异。......
  • xml qtreewidget 的遍历
    这些都是自己工作中遇到的,不具有普遍性 xml的递归遍历voidUserTreeWidget::travelDomElement(QDomElement&ele,QStringList&listOuterId){QDomNodenode=ele.firstChild();while(!node.isNull()){QDomElementchildElement=node.toElemen......
  • MyBatis - 动态调整xml配置
    MyBatis另类用法:动态载入xml配置,获取渲染好的SQL语句。业务场景:在制作报表系统的时候,经常会有一个很头疼的事情:明明只是写一个SQL的事情,但是系统各种配置,客户用不明白,时间久了,我们自己忘得差不多;这时候,我们就会去思考:要不直接开放写SQL的权限?客户想怎么查怎么查,我们不......