Ruby - la Lecture et l'édition de fichier XML

Je suis en train d'écrire un Rubis (1.9.3) script qui lit les fichiers XML à partir d'un dossier, puis modifiez-la si nécessaire.

Mon problème est que j'ai été donné de fichiers XML converti par Bien rangé mais sa sortie est un peu étrange, fo exemple:

<?xml version="1.0" encoding="utf-8"?>
<XML>
  <item>
      <ID>000001</ID>
      <YEAR>2013</YEAR>
      <SUPPLIER>Supplier name test,
      Coproration</SUPPLIER>
...

Comme vous pouvez le voir le a et CRLF supplémentaire. Je ne sais pas pourquoi il a ce comportement, mais je suis de l'aborder avec un script ruby. Mais éprouve de la difficulté que j'ai besoin de voir si le dernier caractère de la ligne est ">" ou si le premier est "<" afin que je puisse voir si il ya quelque chose de mal avec l'annotation.

J'ai essayé:

Dir.glob("C:/testing/corrected/*.xml").each do |file|

puts file

  File.open(file, 'r+').each_with_index do |line, index|

    first_char = line[0,1]

    if first_char != "<"
        //copy this line to the previous line and delete this one?
    end

  end

end

J'ai aussi l'impression que je doit copier le fichier d'origine le contenu que j'ai lu dans un autre fichier temporaire, puis écraser. C'est que le meilleur "moyen"? Tout les conseils sont les bienvenus, je n'ai pas beaucoup d'expérience dans la modification d'un contenu des fichiers.

Ce qui concerne

Je vous suggère d'utiliser nokogiri.
@RubyLovely suggère l'utilisation de xml gem comme nokogiri. Vous essayez de processus xml txt qui est à la fois pas une bonne idée et sérieusement ineffecient en termes de roue de ré-inventer
Hum je vois, je ne suis pas confiné à ruby, mais je vais regarder dans Nokogiri. J'ai voulu Ranger ne serait pas causer de tels tracas hehe 🙂
Regexp: /^</, />$/, mais ce que ces gars dit. Quand vous pensez "traitement de texte", pense que "regexp", mais quand vous pensez à "mise en page traitement de texte", aller chercher un bijou en premier.
Vous pouvez également line[0] et line[-1] pour le premier et le dernier caractère.

OriginalL'auteur Silver | 2013-06-01