zoukankan      html  css  js  c++  java
  • Xml字符串反序列化为实体问题

    public class XmlDataSerializer
    {
        public object GetObjectData(string stream,Type type)
        {
            if (string.IsNullOrEmpty(stream))
                return null;

            stream = stream.Replace("<MobileNote>", "<" + type.Name + ">");
            stream = stream.Replace("</MobileNote>", "</" + type.Name + ">");

            stream = stream.Replace("<object />", "<theInquired />");
            stream = stream.Replace("<object>", "<theInquired>");
            stream = stream.Replace("</object>", "</theInquired>");

            XmlReader xmlReader = XmlReader.Create(new StringReader(stream));
            XmlSerializer mySerializer = new XmlSerializer(type);
            return mySerializer.Deserialize(xmlReader);
        }

    stream为Xml字符串数据。type为tpyeof(类名)。

        //public Questionnaire GetQuestionnaireData(string stream)
        //{
        //    if (string.IsNullOrEmpty(stream))
        //        return null;

        //    stream = stream.Replace("<MobileNote>", "<Questionnaire>");
        //    stream = stream.Replace("</MobileNote>", "</Questionnaire>");

        //    stream = stream.Replace("<object />", "<theInquired />");
        //    stream = stream.Replace("<object>", "<theInquired>");
        //    stream = stream.Replace("</object>", "</theInquired>");

        //    XmlReader xmlReader = XmlReader.Create(new StringReader(stream));
        //    XmlSerializer mySerializer = new XmlSerializer(typeof(Questionnaire));
        //    return mySerializer.Deserialize(xmlReader) as Questionnaire;
        //}

        //public SiteRecordsOfInvestigation GetSiteRecordsOfInvestigationData(string stream)
        //{
        //    if (string.IsNullOrEmpty(stream))
        //        return null;

        //    stream = stream.Replace("<MobileNote>", "<SiteRecordsOfInvestigation>");
        //    stream = stream.Replace("</MobileNote>", "</SiteRecordsOfInvestigation>");

        //    XmlReader xmlReader = XmlReader.Create(new StringReader(stream));
        //    XmlSerializer mySerializer = new XmlSerializer(typeof(SiteRecordsOfInvestigation));
        //    return mySerializer.Deserialize(xmlReader) as SiteRecordsOfInvestigation;
        //}
    }

    呵呵。。。把上面连个方法改为一个通用的方法,不知道算不算重构。。。

    学习的路上,分享的知识有不当的地方,希望大家指出。 感谢大家的阅读,希望这些分享能够给您带来帮助。
  • 相关阅读:
    XML HTML CSS JS的区别整理
    Python的作用域
    python文件操作总结
    python的open文件操作
    python使用struct处理二进制
    webstorm
    vue-cli项目中,配合element_ui来实现上传图片与视频到oss上。
    vue-cli项目中如何实现局部页面的刷新?
    基于cropper图片裁剪,兼容PC端与移动端
    跨域的完全讲解
  • 原文地址:https://www.cnblogs.com/lanchong/p/2382292.html
Copyright © 2011-2022 走看看