`
easylife
  • 浏览: 14705 次
  • 性别: Icon_minigender_1
  • 来自: 忘记
最近访客 更多访客>>
社区版块
存档分类
最新评论

Answer to Best of Ruby Quiz quiz 03

阅读更多
Answer to "GEDCOM Parser" version 1

require "rexml/document"
include REXML


Global_pattern = /\S+/
Id_pattern = /\@(.*)\@/
Tag_pattern = /[A-Z]{3,4}/
doc = node = Document.new
previous_level = -1

def convert_to_node(doc, line)
  cool = line.scan(Global_pattern)
  if cool[1].match(Tag_pattern)
    node = doc.add_element(cool[1])
    node.text = cool[2..-1].join(" ")
  elsif cool[1].match(Id_pattern)
    if cool[2].match(Tag_pattern)
      node = doc.add_element(cool[2])
      node.add_attribute("id", cool[1])
    else
      exit
    end
  else
    exit
  end
end

file = File.open("hello03")
#root = node.add_element("ok" + file.gets()[0].chr)
convert_to_node(node, file.gets())
file.each do |line|
  line_num = line[0].chr.to_i
  if previous_level < line_num
    if line_num - previous_level == 2
      node = node.elements[node.elements.size]
#      node.add_element("ok" + line_num.to_s)
      convert_to_node(node, line)
      previous_level += 1
    elsif line_num - previous_level == 1
#      node.add_element("ok" + line_num.to_s)
    convert_to_node(node, line)
    end
  else
    (previous_level - line_num + 1).times do
      node = node.parent
    end
    previous_level = line_num - 1
#    node.add_element("ok" + line_num.to_s)
    convert_to_node(node, line)
  end
end


File.open("cool005.xml","w") do |file|
  doc.elements.each do |line|
    file.puts line

  end
end

分享到:
评论

相关推荐

    Best of Ruby Quiz

    《Best of Ruby Quiz》是一本聚焦于Ruby编程语言的精选问答集锦,旨在帮助开发者深入理解和掌握Ruby的各种特性。这本书的描述简洁明了,"Best of Ruby Quiz"直接点出了其核心内容——一系列关于Ruby的精彩挑战和问题...

    《Best of Ruby Quiz》

    读者大多可以想出一种办法来解决这些问题,往往还能 通过思考和重构找到第二种优雅的设计,但这本书却给你列出了第三种、第四种真正精巧的解决方案——充分利用Ruby技巧才能得出的解决方案。

    《RUBY QUIZ - The Solitaire Cipher 》

    通过查看提供的文件列表,我们看到有“Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf”,这很可能是《Pragmatic Programmer》出版社出版的一本关于Ruby Quiz的最佳解答合集,其中可能包含了对这个具体挑战的...

    Best.of.Ruby.Quiz

    《Best.of.Ruby Quiz》是一本专为Ruby初学者精心编写的英文教程,旨在帮助新手逐步掌握这门强大而优雅的编程语言。Ruby作为一种动态、面向对象的脚本语言,因其简洁的语法和强大的元编程能力,深受开发者的喜爱。...

    Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf

    《Pragmatic Bookshelf Best of Ruby Quiz Mar 2006》是一本专注于Ruby编程语言的书籍,由Pragmatic Bookshelf出版社出版。这本书的独特之处在于它采用了问答的形式,即"Quiz",来帮助读者深入理解和掌握Ruby的核心...

    Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006

    #### 一、《Pragmatic Bookshelf: Best of Ruby Quiz Mar. 2006》概述 - **书籍标题**:本书名为《Pragmatic Bookshelf: Best of Ruby Quiz Mar. 2006》,是一本专注于Ruby编程语言的经典练习册。 - **书籍内容**:...

    ruby_quiz.rar

    "Pragmatic.Bookshelf.Best.of.Ruby.Quiz.Mar.2006.pdf"是这本书的电子版,出版于2006年3月,由Pragmatic Bookshelf出版社发行。 Ruby是一种动态、面向对象的脚本语言,以其简洁、优雅的语法和强大的元编程能力著称...

    BestofRubyQuizFreePdfBook.pdf 英文原版

    Best of Ruby Quiz – Free Pdf Book

    Ruby语言中英文教程.rar

    Best.of.Ruby.Quiz.pdf O'Reilly - Ruby in a Nutshell (2001).chm OReilly.Ruby.Cookbook.Jul.2006.chm Rails Recipes (2006) .pdf Rolling with Ruby on Rails.chm Ruby On Rails Book (Save Ink Version).pdf ...

    ssd3 practical quiz 6

    ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5

    SSD5 Multiple-Choice Quiz 1 answer

    在SSD5数据结构的Quiz 1中,我们看到了一系列关于C++编程语言的基础知识问题。这些问题涵盖了数组、类与继承、标识符规则、算法、输入/输出操作以及预处理器等多个核心概念。以下是每个问题的详细解答: 1. 对于一...

    ssd3 practical quiz 3

    ssd3 practical quiz 3ssd3 practical quiz 3ssd3 practical quiz 3ssd3 practical quiz 3ssd3 practical quiz 3ssd3 practical quiz 3ssd3 practical quiz 3

    SSD3-quiz4

    【SSD3 Quiz4 知识点详解】 SSD3,全称为Software System Development 3,是卡耐基梅隆大学面向对象程序设计的一门课程。Quiz 4作为该课程的重要组成部分,旨在检验学生对面向对象编程核心概念的理解,以及在实际...

    ssd3 quiz3答案

    【SSD3 Quiz3答案详解】——卡耐基教程精华解析 在计算机科学与信息技术领域,固态存储(Solid State Drive, SSD)是现代数据存储技术的重要组成部分,尤其是在提升系统性能方面发挥着至关重要的作用。卡耐基梅隆...

    ssd3 quiz9答案

    【SSD3 Quiz9答案详解】 在卡耐基教程中的SSD3(Structured Systems Design, 第3阶段)Quiz9,我们关注的是系统设计与分析的关键概念。这个阶段的学习旨在提升学员对复杂系统的设计、实现和优化能力。Quiz9可能是对...

    ssd3 practical quiz 5

    ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5ssd3 practical quiz 5

    ssd3 quiz4答案

    Quiz 4作为该课程的一个环节,可能涉及了课程中的关键概念和技术。在卡耐基梅隆大学或其他提供类似课程的机构,这样的测验旨在检验学生对课程材料的理解和应用能力。 在"ssd3 quiz4答案"中,我们可能讨论以下几个...

    ssd3 practical quiz 2

    ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2ssd3 practical quiz 2

Global site tag (gtag.js) - Google Analytics