Construindo uma árvore XML a partir de uma matriz de "strings / that / are / paths" (em Ruby)
Qual é a melhor maneira de construir uma árvore XML em Ruby se você tiver uma matriz de caminhos de string?
<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>
Meu primeiro pensamento é dividir a string de caminho em uma matriz e comparar sua profundidade e conteúdo com a matriz anterior, mas se eu chegar ao caminho "nodeA1 / nodeB1 / nodeC1 / nodeD1 / nodeE1", quando voltar para "nodeA1 / nodeB1 / nodeC2", o nó [1] é o ancestral comum, mas manter o controle disso é confuso, do jeito que eu tenho feito pelo menos.
Eu gostaria de torná-lo recursivo também, então eu poderia processar cada nível de aninhamento em sua própria função, mas ainda não cheguei a nenhuma solução semi-universal.
Alguma idéia ou coisas que vocês normalmente fazem quando você se depara com esse problema?
Obrigado! Lança