在反序列化时转换XML Dom结构

时间:2016-07-20 11:56:03

标签: c# xml xml-serialization

我必须将XML DOM结构转换为另一个XML DOM结构,如何使用通过IXmlSerialization实现的自定义序列化来执行它。源和目标XML结构如下所述

源XML

<?xml version="1.0"?>
<ConfigFileRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeviceConnectionParams>
    <DeviceConnectionParam>
      <UserId>administrator</UserId>
      <Password>B670AAB84F449BF3953C5ABE947DEF0C</Password>      
      <IsManual>True</IsManual>
    </DeviceConnectionParam>
</DeviceConnectionParams>   
<AlarmMappings>
    <Enabled>true</Enabled>
      <AlarmA>
        <Events>
            <EventId>
                <PanelId>1</PanelId>
                <PanelName>TestAccess</PanelName>
                <DeviceId>65</DeviceId>
                <DeviceName>TestPanel</DeviceName>            
            </EventId>
            <EventId>
                <PanelId>1</PanelId>
                <PanelName>TestAccess</PanelName>
                <DeviceId>65</DeviceId>
                <DeviceName>TestPanel</DeviceName>            
            </EventId>
        </Events>
    </AlarmA>
     <AlarmB>
        <AlarmId>0a103f2b3ce7498c4fcaafb965c742cca66a221027054490eab5459689303bbea1f81898380c</AlarmId>
        <NvrUuid>0a1027054490eab5459689303bbea1f818983801</NvrUuid>
      </AlarmB>
</AlarmMappings>    
</ConfigFileRoot>

目标XML

<?xml version="1.0"?>
<ConfigFileRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DeviceConnectionParams>
    <DeviceConnectionParam>
      <UserId>administrator</UserId>
      <Password>B670AAB84F449BF3953C5ABE947DEF0C</Password>      
      <IsManual>True</IsManual>
    </DeviceConnectionParam>
</DeviceConnectionParams>   
<AlarmMappings>
    <Enabled>true</Enabled>
      <AlarmA>
        <Events>
            <EventId>
                <PanelId>1</PanelId>
                <PanelName>TestAccess</PanelName>
                <DeviceId>65</DeviceId>
                <DeviceName>TestPanel</DeviceName>            
            </EventId>              
        </Events>
    </AlarmA>
     <AlarmB>           <AlarmId>0a103f2b3ce7498c4fcaafb965c742cca66a221027054490eab5459689303bbea1f81898380c</AlarmId>
        <NvrUuid>0a1027054490eab5459689303bbea1f818983801</NvrUuid>
      </AlarmB>
</AlarmMappings>
<AlarmMappings>
    <Enabled>true</Enabled>
      <AlarmA>
        <Events>                
            <EventId>
                <PanelId>1</PanelId>
                <PanelName>TestAccess</PanelName>
                <DeviceId>65</DeviceId>
                <DeviceName>TestPanel</DeviceName>            
            </EventId>
        </Events>
    </AlarmA>
     <AlarmB>
        <AlarmId>0a103f2b3ce7498c4fcaafb965c742cca66a221027054490eab5459689303bbea1f81898380c</AlarmId>
        <NvrUuid>0a1027054490eab5459689303bbea1f818983801</NvrUuid>
      </AlarmB>
</AlarmMappings>    
</ConfigFileRoot>

0 个答案:

没有答案