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

questionAnswers(3)

yourAnswerToTheQuestion