Ich bin derzeit versucht, einen Hash aus einem XML-documen zu schaffen, mit Hilfe des Ochsen gemeinen Ruby-Hash erstellen mit dem ‚ox‘ gem
Eingang xml:
<?xml version="1.0"?>
<expense>
<payee>starbucks</payee>
<amount>5.75</amount>
<date>2017-06-10</date>
</expense>
mit folgendem ruby / ox Code:
doc = Ox.parse(xml)
plist = doc.root.nodes
bekomme ich folgende Ausgabe:
=> [#<Ox::Element:0x00007f80d985a668 @value="payee", @attributes={}, @nodes=["starbucks"]>, #<Ox::Element:0x00007f80d9839198 @value="amount", @attributes={}, @nodes=["5.75"]>, #<Ox::Element:0x00007f80d9028788 @value="date", @attributes={}, @nodes=["2017-06-10"]>]
Der Ausgang ich will, ist ein Hash im Format:
{'payee' => 'Starbucks',
'amount' => 5.75,
'date' => '2017-06-10'}
in meiner SQLLite Datenbank zu speichern.
Wie kann ich das Objekt-Array in einen Hash wie oben transformieren.
Jede Hilfe wird sehr geschätzt.
Hey vielen Dank. Alles was du gesagt hast ist richtig und hat mir sehr geholfen. Im zweiten Beispiel muss es node.text anstelle von node.string sein, da ox :: Element nur eine #text-Methode hat.Zu den "Docs" von Ox. Für einen Neuling wie mich, der zwei Monate lang Rubin und Rails lernt, ohne vorherige Kenntnisse in der Informatik, ist es sehr schwer, die Ox-Dokumentation zu lesen. Zum Beispiel, wie bist du auf den Modus gekommen:: Hash-Argument. Ich habe gestern den Ladevorgang den ganzen Tag untersucht, bevor ich hier gepostet habe und es heißt:: mode (: object |: generic |: limited) - Format erwartet –
Ich frage mich, woher Sie wissen, dass Sie Hash als Modus verwenden können. Das zu beantworten würde mir wirklich helfen, nicht tagelang mit der Lektüre von Dokumenten wie dem Ochsen zu arbeiten und immer noch keine Ahnung zu haben, was ich damit anfangen kann. –
Das nächste Problem, das ich mit dem OX-Juwel lösen muss, besteht darin, den resultierenden Hash wieder in ein XML umzuwandeln. Hast du eine Idee, wie ich das machen könnte? –