2つのXMLファイルがあり、この2つのファイルを1つにマージしたい。 どのように?私はたくさん試しましたが、何も助けません。 マージされたXMLは、最初のXMLからのものであれば、2番目の属性のテキストを残しています。 第2の要素は、第1の属性が持つId/Name/whatevernameによって順序付けされなければなりません。 3番目のノードがXML 2に存在しない場合は、XML 1と同じ場所にノードを作成する必要があります。2つのXMLファイルをC#とマージする方法
ここで示されているXMLファイルは、XML全体の断片です。より多くの属性名。
どのようにC#でこれを行うことができますか?
XML 1
<APPLICATION>
<AC>
<CLASS Name="Hello1" Capt="do1"/>
<CLASS Name="Hello2" Capt="do2"/>
<CLASS Name="Hello5" Capt="do5"/>
<CLASS Name="Hello8" Capt="do8"/>
</AC>
<BO>
<ITEM Id="1" DefaultValue="name1"/>
<ITEM Id="3" DefaultValue="name3"/>
<ITEM Id="11" DefaultValue="name11"/>
<ITEM Id="12" DefaultValue="name12">
<VAL>
<REASON Id="Job1" SecondOne="Hallo"/>
</VAL>
</ITEM>
</BO>
<POP Id="Green" Value="Monster"/>
<POP Id="Blue" Value="Doggie"/>
XML 2
<APPLICATION>
<AC>
<CLASS Name="Hello1" Capt="dodo1"/>
<CLASS Name="Hello2" Capt="dodo2"/>
<CLASS Name="Hello3" Capt="dodo3"/>
<CLASS Name="Hello9" Capt="dodo9"/>
</AC>
<CARS Wheel="Fore" Default="45x255xZ"/>
<CARS Wheel="BACK" Default="45x255xZ"/>
<CARS Wheel="SPARE" Default="45x255xZ"/>
<BO>
<ITEM Id="1" DefaultValue="namename1"/>
<ITEM Id="3" DefaultValue=""/>
<ITEM Id="9" DefaultValue="name11"/>
<ITEM Id="10" DefaultValue="name12">
<VAL>
<REASON Id="Job1" SecondOne="Hallo"/>
</VAL>
</ITEM>
</BO>
XMLは、マージ後に次のようになります。
<APPLICATION>
<AC>
<CLASS Name="Hello1" Capt="dodo1"/>
<CLASS Name="Hello2" Capt="dodo2"/>
<CLASS Name="Hello3" Capt="dodo3"/>
<CLASS Name="Hello5" Capt=""/>
<CLASS Name="Hello8" Capt=""/>
<CLASS Name="Hello9" Capt="dodo9"/>
</AC>
<CARS Wheel="Fore" Default="45x255xZ"/>
<CARS Wheel="BACK" Default="45x255xZ"/>
<CARS Wheel="SPARE" Default="45x255xZ"/>
<BO>
<ITEM Id="1" DefaultValue="namename1"/>
<ITEM Id="3" DefaultValue=""/>
<ITEM Id="9" DefaultValue="name11"/>
<ITEM Id="10" DefaultValue="name12">
<VAL>
<REASON Id="Job1" SecondOne="Hallo"/>
</VAL>
</ITEM>
<ITEM Id="11" DefaultValue=""/>
<ITEM Id="12" DefaultValue="">
<VAL>
<REASON Id="Job1" SecondOne=""/>
</VAL>
</ITEM>
</BO>
<POP Id="Green" Value=""/>
<POP Id="Blue" Value=""/>
を
すべての回答のためにThanxしかし、私はタグがどのようにしているかわからないという問題があるので、タグをハードコードすることはできません。
私はちょうどそれがどのように見えるかの例を伝えなければなりません。しかし、次にXMLファイルを取得したとき、上のタグは全く異なる場合があります。それが問題の場所です。だから、このタグがもう存在しないので、新しいXElement( "BO"、boChildren)を言うことができません。
またはこれはハードコードできません==> var cars = xDocuments.SelectMany(x => x.Root.Elements( "CARS"))。 XMLファイルを次に取得するときに、「CARS」はもう存在しないからです。