XSLT para combinar 2 archivos XML

Sé que hay pocas preguntas relacionadas con la combinación xml / xslt aquí, sin embargo, ninguna parece resolver el problema que tengo.

Lo que estoy buscando es un XSLT (lo más genérico posible, no ajustado a la estructura de los archivos XML de entrada) que puede

Combine a.xml con b.xml y genere c.xml de tal manera que

c.xml contendrá los nodos comunes entre a.xml y b.xml (con los valores de nodo tomados de a.xml)además, c.xml contendrá los nodos (y valores) que están presentes en b.xml y no en a.xml

Por ejemplo: fusionara.xml:

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

conb.xml:

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

Generarác.xml:

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

Información Adicional

Intentaré explicar lo que entiendo por un "nodo común". Esto podría no ser una definición precisa de xml / xslt ya que no soy un experto en ninguna.

a/ root_node / settings /setting1 es un "nodo común" conb/ root_node / settings /setting1 ya que los 2 nodos se alcanzan usando la misma ruta. Lo mismo para setting2 y setting3.

Los 2 "nodos no comunes" sona/ root_node / settings /setting4 que se encuentra solo en a.xml (no debería aparecer en la salida) yb/ root_node / settings /setting5 que se encuentra solo en b.xml (debe entrar en la salida).

Por "solución genérica" ​​no me refiero a algo que funcione en cualquier formato que tengan los XML de entrada. Lo que quiero decir con esto es que xslt no debería contener xpaths de código duro, mientras que usted podría agregar restricciones como "esto solo funcionará si los nodos en a.xml son únicos" o cualquier otra restricción que pueda pensar que será adecuada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta