c#将二级元素序列化为属性 [英] c# serialize second level element to property

查看:22
本文介绍了c#将二级元素序列化为属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建可序列化的类,但我想将二级元素映射到我的类属性.这样做的最佳方法是什么.

I am trying to create serializable class but I want to map second level element to my property of class. What's the best way of doing this.

示例 xml &班级

Example xml & class

<SearchResult>
 <Head>
  <Title q="test">My search Result</Title>
 </Head>
 <Results>
  <Result>...</Result>
  <Result>...</Result>
  <Result>...</Result>
 </Results>
</SearchResult>

[Serializable]
[XmlRoot(ElementName = "GSP")]
public class SearchResult
{
    **[XmlElement(ElementName=@"Head\Title")]**
    public string Title { get; set; }

    [XmlArray(ElementName = "Results")]
    [XmlArrayItem(ElementName = "Result")]
    public List<ResultItem> mySearchResultItems { get; set; }


}

[Serializable]
public class ResultItem
{
...
}

因此,在我的示例中,我想将 Title 属性映射到 xml 中的 </code> 文本值<em class="showen"></em></p> <p class="en">So, In my example I would like to map Title property to <code><Head><Title></code> text value in xml </p> <p class="cn">感谢您的帮助!!</p> <h3 class="best_ans mt-1">推荐答案</h3> <p class="cn">你不能那样做.您需要为 <code><Head></code> 元素创建另一个类<em class="showen"></em></p> <p class="en">You can't do that. You need to create another class for the <code><Head></code> element</p> <pre><code><code>[XmlRoot(ElementName = "GSP")] public class SearchResult { [XmlElement(ElementName = "Head")] public Head Head { get; set; } [XmlArray(ElementName = "Results")] [XmlArrayItem(ElementName = "Result")] public List<ResultItem> mySearchResultItems { get; set; } } public class Head { [XmlElement(ElementName = "Title")] public string Title { get; set; } } public class ResultItem { ... } </code></code></pre> <p class="cn">此外,如果 Title 元素必须有一个属性,您还需要为 Title 元素创建一个新类...<em class="showen"></em></p> <p class="en">Also, if the Title element must have an attribute, you will also need to create a new class for the Title element...</p> <p class="cn">顺便说一下,<code>[Serializable]</code> 属性与 XML 序列化无关...<em class="showen"></em></p> <p class="en">By the way, the <code>[Serializable]</code> attribute has nothing to do with XML serialization...</p> <p>这篇关于c#将二级元素序列化为属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!</p> </div> <div class="arc-body-main-more"> <span onclick="unlockarc('2503741');">查看全文</span> </div> </div> <div> </div> <div class="wwads-cn wwads-horizontal" data-id="166" style="max-width:100%;border: 4px solid #666;"></div> </div> </article> <div id="arc-ad-2" class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="widget bgwhite radius-1 mb-1 shadow widget-rel"> <h5>相关文章</h5> <ul> <li> <a target="_blank" title="基于属性将元素反序列化为属性" href="/2401934.html"> 基于属性将元素反序列化为属性; </a> </li> <li> <a target="_blank" title="将属性序列化为元素中的 Xml 属性" href="/2635116.html"> 将属性序列化为元素中的 Xml 属性; </a> </li> <li> <a target="_blank" title="将类序列化为属性" href="/2503763.html"> 将类序列化为属性; </a> </li> <li> <a target="_blank" title="C#将JSON日期序列化为Ruby" href="/2155405.html"> C#将JSON日期序列化为Ruby; </a> </li> <li> <a target="_blank" title="将 XML 反序列化为类 C#" href="/2502798.html"> 将 XML 反序列化为类 C#; </a> </li> <li> <a target="_blank" title="将 JSON 反序列化为 C# 类" href="/2803519.html"> 将 JSON 反序列化为 C# 类; </a> </li> <li> <a target="_blank" title="将cXML反序列化为C#类" href="/2043707.html"> 将cXML反序列化为C#类; </a> </li> <li> <a target="_blank" title="将C#枚举定义序列化为Json" href="/2065939.html"> 将C#枚举定义序列化为Json; </a> </li> <li> <a target="_blank" title="C# - 将json反序列化为对象" href="/1081199.html"> C# - 将json反序列化为对象; </a> </li> <li> <a target="_blank" title="c#将json对象反序列化/序列化为字典" href="/1323523.html"> c#将json对象反序列化/序列化为字典; </a> </li> <li> <a target="_blank" title="json反序列化为C#" href="/2219890.html"> json反序列化为C#; </a> </li> <li> <a target="_blank" title="序列化 &amp;将属性反序列化为 list<string>;使用 C# 编写 xml 文件" href="/2401982.html"> 序列化 &amp;将属性反序列化为 list<string>;使用 C# 编写 xml 文件; </a> </li> <li> <a target="_blank" title="C#将json序列化和反序列化为txt文件" href="/1508144.html"> C#将json序列化和反序列化为txt文件; </a> </li> <li> <a target="_blank" title="将类中的所有属性序列化为属性而不是元素" href="/2503738.html"> 将类中的所有属性序列化为属性而不是元素; </a> </li> <li> <a target="_blank" title="XML反序列化:将缺少的元素反序列化为null属性值" href="/2043705.html"> XML反序列化:将缺少的元素反序列化为null属性值; </a> </li> <li> <a target="_blank" title="将JSON数组反序列化为C#对象" href="/1506966.html"> 将JSON数组反序列化为C#对象; </a> </li> <li> <a target="_blank" title="C#将十进制序列化为xml" href="/2401905.html"> C#将十进制序列化为xml; </a> </li> <li> <a target="_blank" title="将 JSON 反序列化为 C# 动态对象?" href="/2625836.html"> 将 JSON 反序列化为 C# 动态对象?; </a> </li> <li> <a target="_blank" title="将JSON对象反序列化为C#列表" href="/1505354.html"> 将JSON对象反序列化为C#列表; </a> </li> <li> <a target="_blank" title="将CArchive对象反序列化为C#对象" href="/1310671.html"> 将CArchive对象反序列化为C#对象; </a> </li> <li> <a target="_blank" title="将部分JSON反序列化为C#对象" href="/1341299.html"> 将部分JSON反序列化为C#对象; </a> </li> <li> <a target="_blank" title="将嵌套的XML元素反序列化为C#中的类" href="/2043697.html"> 将嵌套的XML元素反序列化为C#中的类; </a> </li> <li> <a target="_blank" title="JSON将HashMap序列化为根元素" href="/952559.html"> JSON将HashMap序列化为根元素; </a> </li> <li> <a target="_blank" title="XML将属性反序列化为字典" href="/1223060.html"> XML将属性反序列化为字典; </a> </li> <li> <a target="_blank" title="Gson - 将嵌套对象序列化为属性" href="/839677.html"> Gson - 将嵌套对象序列化为属性; </a> </li> </ul> </div> <div class="mb-1"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5038752844014834" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5038752844014834" data-ad-slot="3921941283"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="side"> <div class="widget widget-side bgwhite mb-1 shadow"> <h5>C#/.NET最新文章</h5> <ul> <li> <a target="_blank" title="smtp.live.com - 邮箱不可用。服务器响应为:5.7.3请求的操作中止;用户未通过身份验证" href="/444094.html"> smtp.live.com - 邮箱不可用。服务器响应为:5.7.3请求的操作中止;用户未通过身份验证; </a> </li> <li> <a target="_blank" title="C#WinForms应用程序失败在发送电子邮件:远程名称无法解析:'smtp.gmail.com;操作超时" href="/32030.html"> C#WinForms应用程序失败在发送电子邮件:远程名称无法解析:'smtp.gmail.com;操作超时; </a> </li> <li> <a target="_blank" title="Windows应用程序已停止工作::事件名称CLR20r3" href="/7498.html"> Windows应用程序已停止工作::事件名称CLR20r3; </a> </li> <li> <a target="_blank" title="如何设置的WebAPI控制器的multipart / form-data的" href="/294641.html"> 如何设置的WebAPI控制器的multipart / form-data的; </a> </li> <li> <a target="_blank" title="无法反序列化当前的JSON数组(例如[1,2,3])" href="/240450.html"> 无法反序列化当前的JSON数组(例如[1,2,3]); </a> </li> <li> <a target="_blank" title="如何设置一个HttpClient的请求Content-Type头?" href="/221353.html"> 如何设置一个HttpClient的请求Content-Type头?; </a> </li> <li> <a target="_blank" title="为什么发现“没有匹配请求URI的HTTP资源”这里?" href="/547804.html"> 为什么发现“没有匹配请求URI的HTTP资源”这里?; </a> </li> <li> <a target="_blank" title="如何设置一个重试次数在RabbitMQ的呢?" href="/10344.html"> 如何设置一个重试次数在RabbitMQ的呢?; </a> </li> <li> <a target="_blank" title="任务&LT;&GT;不包含'GetAwaiter“的定义" href="/300688.html"> 任务&LT;&GT;不包含'GetAwaiter“的定义; </a> </li> <li> <a target="_blank" title="这是不可能连接到redis的服务器(S);以创建断开连接多路复用器" href="/421232.html"> 这是不可能连接到redis的服务器(S);以创建断开连接多路复用器; </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门教程 </h5> <ul> <li> <a target="_blank" title="Java教程" href="/OnLineTutorial/java/index.html"> Java教程 </a> </li> <li> <a target="_blank" title="Apache ANT 教程" href="/OnLineTutorial/ant/index.html"> Apache ANT 教程 </a> </li> <li> <a target="_blank" title="Kali Linux教程" href="/OnLineTutorial/kali_linux/index.html"> Kali Linux教程 </a> </li> <li> <a target="_blank" title="JavaScript教程" href="/OnLineTutorial/javascript/index.html"> JavaScript教程 </a> </li> <li> <a target="_blank" title="JavaFx教程" href="/OnLineTutorial/javafx/index.html"> JavaFx教程 </a> </li> <li> <a target="_blank" title="MFC 教程" href="/OnLineTutorial/mfc/index.html"> MFC 教程 </a> </li> <li> <a target="_blank" title="Apache HTTP客户端教程" href="/OnLineTutorial/apache_httpclient/index.html"> Apache HTTP客户端教程 </a> </li> <li> <a target="_blank" title="Microsoft Visio 教程" href="/OnLineTutorial/microsoft_visio/index.html"> Microsoft Visio 教程 </a> </li> </ul> </div> <div class="widget widget-side bgwhite mb-1 shadow"> <h5> 热门工具 </h5> <ul> <li> <a target="_blank" title="Java 在线工具" href="/Onlinetools/details/4"> Java 在线工具 </a> </li> <li> <a target="_blank" title="C(GCC) 在线工具" href="/Onlinetools/details/6"> C(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="PHP 在线工具" href="/Onlinetools/details/8"> PHP 在线工具 </a> </li> <li> <a target="_blank" title="C# 在线工具" href="/Onlinetools/details/1"> C# 在线工具 </a> </li> <li> <a target="_blank" title="Python 在线工具" href="/Onlinetools/details/5"> Python 在线工具 </a> </li> <li> <a target="_blank" title="MySQL 在线工具" href="/Onlinetools/Dbdetails/33"> MySQL 在线工具 </a> </li> <li> <a target="_blank" title="VB.NET 在线工具" href="/Onlinetools/details/2"> VB.NET 在线工具 </a> </li> <li> <a target="_blank" title="Lua 在线工具" href="/Onlinetools/details/14"> Lua 在线工具 </a> </li> <li> <a target="_blank" title="Oracle 在线工具" href="/Onlinetools/Dbdetails/35"> Oracle 在线工具 </a> </li> <li> <a target="_blank" title="C++(GCC) 在线工具" href="/Onlinetools/details/7"> C++(GCC) 在线工具 </a> </li> <li> <a target="_blank" title="Go 在线工具" href="/Onlinetools/details/20"> Go 在线工具 </a> </li> <li> <a target="_blank" title="Fortran 在线工具" href="/Onlinetools/details/45"> Fortran 在线工具 </a> </li> </ul> </div> </div> </div> <script type="text/javascript">var eskeys = 'c#,将,二级,元素,序列,化为,属性'; var cat = 'cc';';//c</script> </div> <div id="pop" onclick="pophide();"> <div id="pop_body" onclick="event.stopPropagation();"> <h6 class="flex flex101"> 登录 <span onclick="pophide();">关闭</span> </h6> <div class="pd-1"> <div class="wxtip center"> <span>扫码关注<em>1秒</em>登录</span> </div> <div class="center"> <img id="qr" src="https://huajiakeji.com/Content/Images/qrydx.jpg" alt="" style="width:150px;height:150px;" /> </div> <div style="margin-top:10px;display:flex;justify-content: center;"> <input type="text" placeholder="输入验证码" id="txtcode" autocomplete="off" /> <input id="btngo" type="button" onclick="chk()" value="GO" /> </div> <div class="center" style="margin: 4px; font-size: .8rem; color: #f60;"> 发送“验证码”获取 <em style="padding: 0 .5rem;">|</em> <span style="color: #01a05c;">15天全站免登陆</span> </div> <div id="chkinfo" class="tip"></div> </div> </div> </div> <script type="text/javascript" src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/highlight.min.js"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/base.js?v=0.22"></script> <script type="text/javascript" src="https://img01.yuandaxia.cn/Scripts/tui.js?v=0.11"></script> <footer class="footer"> <div class="container"> <div class="flink mb-1"> 友情链接: <a href="https://www.it1352.com/" target="_blank">IT屋</a> <a href="https://huajiakeji.com/" target="_blank">Chrome插件</a> <a href="https://www.cnplugins.com/" target="_blank">谷歌浏览器插件</a> </div> <section class="copyright-section"> <a href="https://www.it1352.com" title="IT屋-程序员软件开发技术分享社区">IT屋</a> ©2016-2022 <a href="http://www.beian.miit.gov.cn/" target="_blank">琼ICP备2021000895号-1</a> <a href="/sitemap.html" target="_blank" title="站点地图">站点地图</a> <a href="/Home/Tags" target="_blank" title="站点标签">站点标签</a> <a target="_blank" alt="sitemap" href="/sitemap.xml">SiteMap</a> <a href="/1155981.html" title="IT屋-免责申明"><免责申明></a> 本站内容来源互联网,如果侵犯您的权益请联系我们删除. </section> <!--统计代码--> <script type="text/javascript"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?0c3a090f7b3c4ad458ac1296cb5cc779"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="text/javascript"> (function () { var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </div> </footer> </body> </html>