[RUBY] [Rails] Comment lire le fichier XML téléchargé depuis l'écran en type Hash

Ceci est un exemple d'implémentation lorsque vous souhaitez lire le fichier XML téléchargé depuis l'écran en type Hash dans une application utilisant Rails (série 5).

Fichier XML à télécharger

Cette fois, j'utilise le fichier XML suivant pour la vérification

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

Description de html.erb

Placez le fichier et la balise de bouton de manière appropriée. (Vous pouvez choisir votre style de conception!)

<%= form_tag xxx_path, multipart: true do %>
  <label>Lire le fichier XML</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 'Envoyer', class: 'btn btn-primary' %>
    </div>
  </div>
<% end %>

Description de Controller.rb

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

En raison de ce qui précède, vous pouvez obtenir le contenu du fichier au format Hash comme indiqué ci-dessous.

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

Recommended Posts

[Rails] Comment lire le fichier XML téléchargé depuis l'écran en type Hash
Comment comparer uniquement le temps avec Rails (de quelle heure à quelle heure, quelque chose comme)
[Java] Comment extraire le nom du fichier du chemin
Comment lire les itinéraires des rails
Comment écrire une migration du type Rails datetime au type date
[Avec des astuces de retour] Comment présenter React aux rails les plus simples
Comment charger une bibliothèque à partir d'un fichier JAR avec VSCode << Comment ne pas utiliser Maven / Gradle >>
[Rails] Comment empêcher la transition d'écran
[Rails] Comment introduire le kaminari avec Slim et changer le design
Comment ouvrir un fichier de script à partir d'Ubuntu avec du code VS
[Java] Comment convertir du type String en type Path et obtenir le chemin
[Rails 5] Comment afficher l'écran de changement de mot de passe lors de l'utilisation de l'appareil
[Solution au problème] SAXReader: Comment lire un fichier xml avec un fichier DTD externe spécifié dans un environnement hors ligne
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
[Java] Comment utiliser la classe File
[Rails] Comment convertir ERB en Haml
Comment exécuter un fichier GIF à partir de la ligne de commande Linux (Ubuntu)
[Rails] Comment utiliser la méthode de la carte
Comment réaliser le téléchargement de fichiers avec Feign
[Rails] Comment obtenir les informations sur l'utilisateur actuellement connecté avec devise
Comment passer la valeur à un autre écran
[Rails] Comment créer une table, ajouter une colonne et changer le type de colonne
[Rails] Comment appliquer le CSS utilisé dans l'application principale avec Administrer
Comment réaliser le téléchargement de fichiers avec Feign
Comment créer un environnement Rails 6 avec Docker
[Rails6] Comment connecter la fonction d'affichage générée par Scaffold avec la fonction utilisateur générée par devise
Je souhaite pouvoir lire des fichiers en utilisant refile avec administrate [rails6]
[Rails] Comment enregistrer plusieurs enregistrements dans la table intermédiaire avec une association plusieurs-à-plusieurs
[Rails] Comment utiliser la méthode d'assistance utilisée dans l'application principale avec Administrer
Comment obtenir la date du type Date de JavaScript auquel les développeurs C # sont accros
[Rails] Comment décider de la destination par "voies ferrées"
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
Comment lier Rails6 Vue (à partir de la construction de l'environnement)
Comment vider de la base de données (DB) vers le fichier de départ
Je veux jouer avec Firestore de Rails
Comment créer une API avec GraphQL et Rails
[Rails] Comment créer un environnement avec Docker
Rails "Comment supprimer les fichiers de migration NO FILE"
[Spring Boot] Comment se référer au fichier de propriétés
Essayez de résumer la disposition commune avec des rails
Comment vérifier les commandes Rails dans le terminal
Si vous utilisez SQLite avec VSCode, utilisez l'extension (comment voir le fichier binaire de sqlite3)
Comment enregistrer des fichiers avec l'extension spécifiée sous le répertoire spécifié en Java dans la liste
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
[Rails] Solution lorsque l'erreur "visite de la méthode non définie" "apparaît lors de l'utilisation de Capybara avec Rspec
Comment changer l'action avec plusieurs boutons d'envoi
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
Comment revenir à l'écran précédent par opération Swipe
Comment passer d'Eclipse Java à un fichier SQL