XSLT zum Zusammenführen von 2 XML-Dateien

Ich weiß, dass es hier einige Fragen zum Zusammenführen von xml / xslt gibt, aber keine scheint das Problem zu lösen, das ich habe.

Was ich suche, ist ein XSLT (so allgemein wie möglich - nicht eng mit der Struktur der XML-Eingabedateien), die können

Füge a.xml mit b.xml zusammen und generiere c.xml so, dass

c.xml enthält die gemeinsamen Knoten zwischen a.xml und b.xml (wobei die Knotenwerte aus a.xml stammen)Außerdem enthält c.xml die Knoten (und Werte), die in b.xml und nicht in a.xml vorhanden sind

Zum Beispiel: Zusammenführena.xml:

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

mitb.xml:

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

wird erzeugenc.xml:

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

zusätzliche Information

Ich werde versuchen zu erklären, was ich unter einem "gemeinsamen Knoten" verstehe. Dies ist möglicherweise keine genaue xml / xslt-Definition, da ich in keiner Experte bin.

a/ root_node / settings /setting1 ist ein "gemeinsamer Knoten" mitb/ root_node / settings /setting1 da die 2 Knoten über den gleichen Pfad erreicht werden. Das gleiche gilt für Einstellung2 und Einstellung3.

Die 2 "ungewöhnlichen Knoten" sinda/ root_node / settings /setting4 welches nur in a.xml zu finden ist (es sollte nicht in die ausgabe kommen) undb/ root_node / settings /Einstellung5 welches nur in b.xml zu finden ist (es sollte in die Ausgabe kommen).

Mit "generische Lösung" meine ich nicht etwas, das funktioniert, egal welches Format die Eingabe-XMLs haben werden. Damit meine ich, dass das xslt keine xpaths mit hartem Code enthalten sollte, während Sie möglicherweise Einschränkungen wie "Dies funktioniert nur, wenn die Knoten in einer.xml eindeutig sind" oder eine andere Einschränkung, die Sie für geeignet halten, hinzufügen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage