У меня есть 2 xml файлов с именами xml1 и xml2.Если номер API в обоих xml совпадает, дочерние узлы xml2 должны быть добавлены в xml1 для этого номера API. Это должно происходить для нескольких API в обоих * Файл 1010 *, если сопоставление имеет место. Помощь PLZ. Файл xml выглядит следующим образом:
xml1
<WellBore>
<APINumber>42001321910000</APINumber>
<WBRoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
<WbNxtAvailSuffix>00</WbNxtAvailSuffix>
</WellBore>
<WellBore>
<APINumber>42001313220000</APINumber>
<WBRoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
</WellBore>
xml2
<DrillingPermit>
<APINumber>42001321910000</APINumber>
<DARoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
<DAStatusNumber>854731</DAStatusNumber>
</DARoot>
</DrillingPermit>
<DrillingPermit>
<APINumber>42008167810000</APINumber>
<DARoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
<DAStatusNumber>854731</DAStatusNumber>
</DARoot>
</DrillingPermit>
Result should be in xml1 as
<WellBore>
<APINumber>42001321910000</APINumber>
<WBRoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
<WbNxtAvailSuffix>00</WbNxtAvailSuffix>
</WellBore>
<DrillingPermit>
<APINumber>42001321910000</APINumber>
<DARoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
<DAStatusNumber>854731</DAStatusNumber>
</DARoot>
</DrillingPermit>
<DrillingPermit>
<WellBore>
<APINumber>42001313220000</APINumber>
<WBRoot>
<RrcTapeRecordId>0</RrcTapeRecordId>
</WellBore>
РЕДАКТИРОВАТЬ: Добавлено в вопрос согласно комментарию ниже:
XDocument xml1 = XDocument.Load(@"C:\Official\Projects\xmltransform\xmltransform\TXRRC.xml");
XDocument xml2 = XDocument.Load(@"C:\Official\Projects\xmltransform\xmltransform\Drilling.xml");
XElement txrrc1 = xml1.Descendants().Descendants("WellBore").FirstOrDefault();
XElement drill1 = xml2.Descendants().Descendants("DrillingPermit").FirstOrDefault();
if(txrrc1.Element("APINumber").Value == drill1.Element("APINumber").Value)
{
txrrc1.Add(drill1.Nodes());
}