使用XMLElement进行XML序列化

本文关键字:序列化 XML 进行 XMLElement 使用 | 更新日期: 2023-09-27 18:05:39

我有一个定义的类,它有以下数据

public partial class EHRNodesTesting {
   private string fieldID;
   private bool fieldRights;
   private string fieldName;
   [System.Xml.Serialization.XmlAttribute]
   public string FieldID
   {
      get { return this.fieldID; }
      set { this.fieldID = value; }
   }
   [System.Xml.Serialization.XmlAttribute]
   public bool FieldRights 
   {
      get { return this.fieldRights; }
      set { this.fieldRights = value; }
   }
   [XmlElement("Value")]
   public string FieldValue
   {
      get { return this.fieldName; }
      set { this.fieldName = value; }
   }
}

然后我用我得到的一组数据填充这个,所以我没有预定义的字段,然后序列化结果如下

<FieldNode>
   <FieldName FieldID="LastName" FieldRights="true">
      <FieldValue>Harris</FieldValue>
   </FieldName>
   <FieldName FieldID="FirstNameName" FieldRights="true">
      <FieldValue>John</FieldValue>
   </FieldName>
</FieldNode>

现在,是否有一种方法,序列化接受FieldID的值并用它替换FieldName,以获得以下

<FieldNode>
   <LastName FieldID="LastName" FieldRights="true">
      <FieldValue>Harris</FieldValue>
   </LastName >
   <FirstName FieldID="FirstName" FieldRights="true">
      <FieldValue>John</FieldValue>
   </FirstName>
</FieldNode>

使用XMLElement进行XML序列化

对于XmlDocument/XDocument对象没有办法做到这一点。您是否尝试过通过实现IXmlSerializable来定制输出?我对界面的限制没有经验。

我确实有一个类似xml的自定义序列化,我可以在其中更改节点的名称。我相信你也会这么做的。

相关文章: