Построение дерева XML из массива «строки / что / являются / пути» (в Ruby)

Каков наилучший способ построить дерево XML в Ruby, если у вас есть массив строковых путей?


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

Моя первая мысль состоит в том, чтобы разделить строку пути на массив и сравнить ее глубину и содержание с предыдущим массивом, но потом, если я доберусь до пути "nodeA1 / nodeB1 / nodeC1 / nodeD1 / nodeE1"когда я вернусь кnodeA1 / nodeB1 / nodeC2", узел [1] является общим предком, но отслеживание этого является грязным, как яПо крайней мере, я делал это.

Я хотел бы также сделать его рекурсивным, чтобы я мог обрабатывать каждый уровень гнезда в своей собственной функции, но нене может прийти к какому-либо полууниверсальному решению.

Какие идеи или вещи вы обычно делаете, когда сталкиваетесь с этой проблемой?

Спасибо! копье

Ответы на вопрос(3)

Ваш ответ на вопрос