如何在使用XmlSerializer保留内容的同时更改根元素名称?

我有一个XML文档:

<数据>
<elmt1>要素1&lt/elmt1>
<elmnt2>要素2&lt/elmnt2>
<elmnt3>要素3&lt/elmnt3>
&lt/数据>

我需要反序列化到一个对象,该对象序列化为不同的根名称,而其他所有内容保持不变

例如:

<dataNew>
<elmt1>要素1&lt/elmt1>
<elmnt2>要素2&lt/elmnt2>
<elmnt3>要素3&lt/elmnt3>
&lt/dataNew>

序列化时,我们总是可以应用XmlRootAttribute来序列化到不同的根名称,但我不知道如何反序列化到不同的XmlRootAttribute。它在指向根属性的文档(1,2)中不断失败

我怎样才能做到这一点

如果只是要更改的根名称,则可以在声明XmlSerializer时指定根属性

XmlSerializer XmlSerializer=新的XmlSerializer(typeof(数据)、新的XmlRootAttribute(“dataNew”);

发表评论