Книга: Программирование на языке Ruby
15.1.1. Древовидное представление
15.1.1. Древовидное представление
Сначала покажем, как работать с ХМL-документом, представленным в виде дерева. Для начала затребуем библиотеку rexml/document
; обычно для удобства мы включаем также директиву include rexml
, чтобы импортировать все необходимое в пространство имен верхнего уровня. В листинге 15.2 продемонстрировано несколько полезных приемов.
Листинг 15.2. Разбор документа с применением DOM
require 'rexml/document'
include REXML
input = File.new("books.xml")
doc = Document.new(input)
root = doc.root
puts root.attributes["shelf"] # Недавние приобретения
doc.elements.each("library/section") { |e| puts e.attributes["name"] }
# Выводится:
# Ruby
# Space
doc.elements.each("*/section/book") { |e| puts e.attributes["isbn"] }
# Выводится:
# 0672328844
# 0321445619
# 0684835509
# 074325631X
sec2 = root.elements[2]
author = sec2.elements[1].elements["author"].text # Robert Zubrin
Обратите внимание: атрибуты представляются в виде хэша. Обращаться к элементам можно либо по пути, либо по номеру. В последнем случае учтите, что согласно спецификации XML индексация элементов начинается с 1, а не с 0, как в Ruby.
- Принцип «модель-визуальное представление-контроллер»
- 11.3.2. Древовидное представление множества кандидатов
- 4.2. Формализованное представление угроз ИБ от персонала
- 5 Текстовое представление данных: ясные протоколы лежат в основе хорошей практики
- Представление дискуссионной группы по управлению проектами
- ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ
- Представление метаданных компоновочного блока
- 9.5.1. Представление графов
- 2.3. Представление чисел в компьютере
- 4.2. Представление базовой структуры программы
- Наглядное представление неочевидных вещей
- Представление данных