[RUBY] [Rails] Lesen der vom Bildschirm hochgeladenen XML-Datei im Hash-Typ

Dies ist ein Implementierungsbeispiel, wenn Sie die vom Bildschirm hochgeladene XML-Datei vom Typ Hash in einer Anwendung mit Rails (Serie 5) lesen möchten.

XML-Datei zum Hochladen

Dieses Mal verwende ich die folgende XML-Datei zur Überprüfung

<?xml version="1.0" encoding="UTF-8"?>
<items>
  <item>AAA</item>
  <item>BBB</item>
  <item>CCC</item>
</items>

Beschreibung von html.erb

Platzieren Sie die Datei und das Schaltflächen-Tag entsprechend. (Sie können Ihren Designstil wählen!)

<%= form_tag xxx_path, multipart: true do %>
  <label>XML-Datei lesen</label>
  <div class="row">
    <div class="col-sm-2">
      <%= file_field_tag :file, class: 'btn btn-primary' %>
    </div>
  </div>
  <div class="row">
    <div class="col-sm-4">
      <%= submit_tag 'Senden', class: 'btn btn-primary' %>
    </div>
  </div>
<% end %>

Beschreibung von Controller.rb

xml = REXML::Document.new(File.new(params[:file].path).read)
xml_h = Hash.from_xml(xml.to_s)

Infolgedessen können Sie den Inhalt der Datei im Hash-Format wie unten gezeigt abrufen.

{"items"=>{"item"=>["AAA", "BBB", "CCC"]}}

Recommended Posts

[Rails] Lesen der vom Bildschirm hochgeladenen XML-Datei im Hash-Typ
Wie man nur die Zeit mit Rails vergleicht (von welcher Zeit bis zu welcher Zeit, so etwas wie)
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
Wie man Schienenrouten liest
So schreiben Sie eine Migration vom Rails-Datums- / Uhrzeittyp zum Datumstyp
[Mit Backtricks] So stellen Sie React to the simple Rails vor
So laden Sie eine Bibliothek aus einer JAR-Datei mit VSCode << So verwenden Sie Maven / Gradle nicht >>
[Schienen] So verhindern Sie den Bildschirmübergang
[Rails] Wie man Kaminari mit Slim einführt und das Design ändert
So öffnen Sie eine Skriptdatei von Ubuntu mit VS-Code
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
[Rails 5] Anzeigen des Bildschirms zum Ändern des Kennworts bei Verwendung von devise
[Problemlösung] SAXReader: Lesen einer XML-Datei mit einer externen DTD-Datei, die in einer Offline-Umgebung angegeben ist
So dekorieren Sie CSS auf Rails6 form_with (Hilfs-) Optionsfeldern
[Java] Verwendung der File-Klasse
[Rails] Wie man von erb zu haml konvertiert
So führen Sie eine GIF-Datei über die Linux-Befehlszeile aus (Ubuntu)
[Schienen] Verwendung der Kartenmethode
So erreichen Sie den Dateidownload mit Feign
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
So übergeben Sie den Wert an einen anderen Bildschirm
[Schienen] So erstellen Sie eine Tabelle, fügen eine Spalte hinzu und ändern den Spaltentyp
[Rails] So wenden Sie das in der Hauptanwendung verwendete CSS mit Administrate an
So erreichen Sie das Hochladen von Dateien mit Feign
So erstellen Sie eine Rails 6-Umgebung mit Docker
[Rails6] So verbinden Sie die von Scaffold generierte Buchungsfunktion mit der von devise generierten Benutzerfunktion
Ich möchte in der Lage sein, Dateien mit refile mit administrate [rails6] zu lesen.
[Schienen] So registrieren Sie mehrere Datensätze in der Zwischentabelle mit einer Zuordnung von vielen zu vielen
[Rails] So bedienen Sie die in der Hauptanwendung verwendete Hilfsmethode mit Administrate
So ermitteln Sie das Datum aus dem Datumstyp von JavaScript, von dem C # -Entwickler abhängig sind
[Rails] So bestimmen Sie das Ziel anhand von "Rails-Routen"
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
So verknüpfen Sie Rails6 Vue (aus dem Umgebungsbau)
So sichern Sie von der Datenbank (DB) in die Seeds-Datei
Ich möchte mit Firestore von Rails spielen
So erstellen Sie eine API mit GraphQL und Rails
[Rails] So erstellen Sie eine Umgebung mit Docker
Rails "So löschen Sie NO FILE-Migrationsdateien"
[Spring Boot] So verweisen Sie auf die Eigenschaftendatei
Versuchen Sie, das gemeinsame Layout mit Schienen zusammenzufassen
So überprüfen Sie Rails-Befehle im Terminal
Wenn Sie SQLite mit VSCode verwenden, verwenden Sie die Erweiterung (wie die Binärdatei von sqlite3 angezeigt wird)
Speichern von Dateien mit der angegebenen Erweiterung unter dem in Java angegebenen Verzeichnis in der Liste
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
So ändern Sie die Aktion mit mehreren Senden-Schaltflächen
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
So kehren Sie durch Wischen zum vorherigen Bildschirm zurück
So springen Sie von Eclipse Java zu einer SQL-Datei