Iterieren verschachtelten XML-Elemente, die mit Ruby-Nokogiri

Ich versuche Durchlaufen einer Ordner-Struktur in XML mit Nokogiri, aber ich bin stecken in diesem:

<test>
   <folder name="Folder A">
      <folder name="Folder A1">
         <file name="a.txt">Cool file</file>
      </folder>
      <folder name="Folder A2"></folder>
   </folder>
   <folder name="Folder B">
      <folder name="Folder B1"></folder>
      <folder name="Folder B2">
         <folder name="Folder B21">
            <file name="b.txt"></file>
         </folder>
   </folder>
</test>

So, ich will zu Durchlaufen, damit Sie in der Lage, erstellen einen Baum von Ordnern und Dateien (Ordner A1 und A2 drin sind Ordner A, Ordner B1 und B2 sind innen Ordner B und Ordner B21 innen Ordner B2).

So, ich bin dabei:

nodes = allnodes.xpath('//folder')
nodes.each do |node|
  puts "name => #{node.attributes['name']}"
end

aber das listet mir alle Ordner (A, A1, A2, B, B1, B2, B21). Wie kann ich es so machen, dass ich nicht prüfen Sie im vorherigen Ordner weitere Ordner und ich sende es dann an die gleiche rekursive Funktion?

Vielen Dank für die Hilfe 🙂

  • Du fragst, wie man nur die Unterordner eines bestimmten Ordner? Zum Beispiel, wenn Sie angegeben haben, "Ordner A", Sie würden nur "A1" und "A2"?
  • Schöne xml-Struktur.. +1
  • Was meinst du mit "Wie kann ich es so machen, dass ich nicht prüfen Sie im vorherigen Ordner weitere Ordner"? Die //folder gibt Sie jeden Ordner genau einmal. Was versuchen Sie zu tun?
  • Ich beantwortete die Fragen unten 🙂
InformationsquelleAutor Tiago | 2014-02-19
Schreibe einen Kommentar