2 개의 xml 파일을 함께 병합해야하지만 두 파일에 나타나는 요소를 모두 고려해야합니다.LINQ를 사용하여 2 개의 Xml 파일 병합
입력 : Xml1
<?xml version="1.0"?>
<Style Width="1024" Height="768">
<BaseStyle Width="1024" Height="768" BackgroundPath="./Images/BackgroundAAA.png"/>
<Styles>
<LabelStyle ID="Label1" Font="Tahoma" Bold="false" /> <!-- exists in both -->
<LabelStyle ID="Label2" Font="Tahoma" Bold="false" /> <!-- exists in both -->
<LabelStyle ID="Label3" Font="Tahoma" Bold="false" /> <!-- unique -->
</Styles>
</Style>
입력 : 여기에 내가 무엇을 의미하는지의 예 Xml2
<?xml version="1.0"?>
<Style Width="1024" Height="768">
<BaseStyle Width="1024" Height="768" BackgroundPath="./Images/BackgroundBBB.png"/>
<Styles>
<LabelStyle ID="Label1" Font="Arial" Bold="true" /> <!-- exists in both -->
<LabelStyle ID="Label2" Font="Arial" /> <!-- exists in both -->
<LabelStyle ID="Label4" Font="Arial" Bold="false" /> <!-- unique -->
</Styles>
</Style>
와 나는 출력으로 다음과 같은 얻을 필요가 : -
결과 : Xml3
<?xml version="1.0"?>
<Style Width="1024" Height="768">
<BaseStyle Width="1024" Height="768" BackgroundPath="./Images/BackgroundBBB.png"/> <!-- has overwritten Xml1 -->
<Styles>
<LabelStyle ID="Label1" Font="Arial" Bold="true" /> <!-- has merged Xml1 & Xml2 with Xml2 taking precedence -->
<LabelStyle ID="Label2" Font="Arial" Bold="false" /> <!-- has merged Xml1 & Xml2 with Xml2 taking precedence (note Bold attribute is present) -->
<LabelStyle ID="Label3" Font="Tahoma" Bold="false" /> <!-- unique -->
<LabelStyle ID="Label4" Font="Arial" Bold="false" /> <!-- unique -->
</Styles>
</Style>
위와 같이 고유 한 것이 병합되고 공통적 인 것 (ID를 키로 사용)이 Xml2 값으로 업데이트된다는 것을 알 수 있습니다.
저는 LINQ를 사용하여 2 개의 XML 파일을 병합하는 방법에 대한 많은 훌륭한 질문을 읽었지 만 그 중 아무 것도 내 요구 사항을 충족시키지 못했습니다. 그들은 모두 A와 B를 복용하고 A + B로 끝내는 것에 대해 이야기하는 것 같습니다.
LINQ를 사용하여 쉽게이 방법이 있습니까?
미리 감사드립니다. 예를 들어
당신이 봤어 여기 생각 : ** HTTP : //stackoverflow.com/questions/4937875/merging -two-xml-files-linq ** –