Construyendo un árbol XML a partir de una matriz de "cadenas / que / son / rutas" (en Ruby)

¿Cuál es la mejor manera de construir un árbol XML en Ruby si tiene una matriz de rutas de cadenas?


<code>paths = [
  "nodeA1",
  "nodeA1/nodeB1/nodeC1",
  "nodeA1/nodeB1/nodeC1/nodeD1/nodeE1",
  "nodeA1/nodeB1/nodeC2",
  "nodeA1/nodeB2/nodeC2",
  "nodeA3/nodeB2/nodeC3"
]</code>
xml = 
<code><nodeA1>
    <nodeB1>
        <nodeC1>
            <nodeD1>
                <nodeE1/>
            </nodeD1>
        </nodeC1>
        <nodeC2/>
    </nodeB1>
    <nodeB2>
        <nodeC2/>
        <nodeC3/>
    </nodeB2>
</nodeA1></code>

Mi primer pensamiento es dividir la cadena de ruta en una matriz, y comparar su profundidad y contenido con la matriz anterior, pero luego si llego a la ruta "nodeA1 / nodeB1 / nodeC1 / nodeD1 / nodeE1", cuando vuelvo a "nodeA1 / nodeB1 / nodeC2", el nodo [1] es el ancestro común, pero mantenerlo al tanto es complicado, como mínimo lo he estado haciendo.

También me gustaría hacerlo recursivo, para poder procesar cada nivel de nido en su propia función, pero aún no he llegado a ninguna solución semi-universal.

¿Alguna idea o cosas que comúnmente hacen cuando se encuentran con este problema?

¡Gracias! lanza

Respuestas a la pregunta(3)

Su respuesta a la pregunta