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

本文关键字:覆盖 Xml 另一个 超集 | 更新日期: 2023-09-27 18:33:34

1st 所有可能的字段

  <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>

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

最好的

方法是什么?

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

提前致谢

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

是的,名称将相同。顺序是一个序列。只是第二个文件中会缺少一些。我没有xsd,不幸的是,验证依赖于业务层和数据库。谢谢!