XSLT do scalenia 2 plików XML

Wiem, że jest tu kilka pytań związanych z scalaniem xml / xslt, jednak wydaje się, że żaden z nich nie rozwiązuje problemu, który mam.

To, czego szukam, to XSLT (tak ogólny, jak to możliwe - niedokładny ze strukturą wejściowych plików XML), który może

Scal plik.xml z plikiem b.xml i wygeneruj plik c.xml w taki sposób

c.xml będzie zawierać wspólne węzły między a.xml i b.xml (z wartościami węzłów pobranymi z pliku a.xml)dodatkowo c.xml będzie zawierał węzły (i wartości), które są obecne w pliku b.xml, a nie w pliku a.xml

Na przykład: scalaniea.xml:

<root_node>
  <settings>
    <setting1>a1</setting1>
    <setting2>a2</setting2>
    <setting3>
      <setting31>a3</setting31>
    </setting3>
    <setting4>a4</setting4>
  </settings>
</root_node>

zb.xml:

<root_node>
  <settings>
    <setting1>b1</setting1>
    <setting2>b2</setting2>
    <setting3>
      <setting31>b3</setting31>
    </setting3>
    <setting5 id="77">b5</setting5>
  </settings>
</root_node>

wygenerujec.xml:

<root_node>
  <settings>
  <setting1>a1</setting1>
  <setting2>a2</setting2>
  <setting3>
    <setting31>a3</setting31>
  </setting3>
  <setting5 id="77">b5</setting5>
</settings>

Dodatkowe informacje

Spróbuję wyjaśnić, co rozumiem przez „wspólny węzeł”. Może to nie być dokładna definicja xml / xslt, ponieważ nie jestem ekspertem w żadnym.

a/ root_node / settings /ustawienie1 jest „wspólnym węzłem” zb/ root_node / settings /ustawienie1 ponieważ 2 węzły są osiągane przy użyciu tej samej ścieżki. To samo dla ustawienia2 i ustawienia3.

Dwa „wspólne węzły” toa/ root_node / settings /ustawienie4 który znajduje się tylko w pliku a.xml (nie powinien pojawić się na wyjściu) ib/ root_node / settings /ustawienie5 który znajduje się tylko w b.xml (powinien pojawić się na wyjściu).

Przez „ogólne rozwiązanie” nie mam na myśli czegoś, co będzie działać niezależnie od formatu, jaki będą miały wejściowe XML. Chodzi mi o to, że xslt nie powinien zawierać twardych ścieżek xpath, podczas gdy możesz dodać ograniczenia, takie jak „to zadziała tylko wtedy, gdy węzły w pliku a.xml są unikalne” lub jakiekolwiek inne ograniczenie, które możesz uznać za odpowiednie.

questionAnswers(2)

yourAnswerToTheQuestion