在另一个(超集)上覆盖1个Xml

时间:2013-10-01 03:26:18

标签: c# asp.net xml xslt merge

第1个所有可能的字段

  <HRMasterData>                  
      <MasterPersonDossier>           
        <MasterPerson>
          <PersonDetails>               
            <PersonID></PersonID>
            <PersonName>                        
              <GivenName></GivenName>
              <PreferredName></PreferredName>
              <MiddleName></MiddleName>
              <FamilyName></FamilyName>
              <FormerFamilyName></FormerFamilyName>
              <TitleAffixCode></TitleAffixCode>
              <PersonNameInitials></PersonNameInitials>
              <NewField></NewField>
            </PersonName>
            <EffectiveDateTime></EffectiveDateTime>
            <HomeCountry></HomeCountry>
            <NewField></NewField>
        </PersonDetails >
    </MasterPerson>
  </MasterPersonDossier>
</HRMasterData>

第二个数据,并非总是存在所有字段

    <HRMasterData>           
        <MasterPersonDossier>       
          <MasterPerson>
            <PersonDetails>                 
              <PersonID>abc</PersonID>
               <PersonName>             
                <GivenName>Smith</GivenName>
                <PreferredName>Jack </PreferredName>
                <MiddleName>John</MiddleName>
                <TitleAffixCode>Mr.</TitleAffixCode>
                <PersonNameInitials>w</PersonNameInitials>
              </PersonName>
              <EffectiveDateTime>2011-01-11</EffectiveDateTime>
              <HomeCountry>US</HomeCountry>
             </PersonDetails >
             </MasterPerson>
      </MasterPersonDossier>
    </HRMasterData>

我想将第二个文档的现有值叠加到第一个doc(超集)上。然后,我将外部系统映射到超集,第二个没有的映射字段(即Newfield)。然后,所有数据都会被推下来进行更新。

最好的方法是什么?

我尝试过数据集合并但有问题。我的后退将是2个循环,检查第二个标签是否存在并更新第一个xml。

先谢谢

1 个答案:

答案 0 :(得分:0)

是的名字是一样的。顺序是一个序列。只是有些将在第二个文件中丢失。我没有xsd,遗憾的是,验证依赖于业务层和数据库..谢谢!