Книга: Программирование на языке Ruby

15.1.3. XPath и другие интерфейсы

15.1.3. XPath и другие интерфейсы

Альтернативным способом работы с ХМL-документом является язык XPath, с помощью которого описывается, как обратиться к конкретным элементам и атрибутам XML-документа.

Библиотека REXML поддерживает XPath с помощью класса XPath. Предполагается, что документ представлен в виде DOM (см. выше листинг 15.2). Рассмотрим следующий код:

# (Этап подготовки опущен.)
book1 = XPath.first(doc, "//book") # Найдена информация о первой книге
р book1
# Распечатать названия всех книг.
XPath.each(doc, "//title") { |e| puts e.text }
# Получить массив всех элементов "author".
names = XPath.match(doc, "//author").map {|x| x.text }
p names

Вот что он напечатает:

<book isbn='0672328844'> ... </>
The Ruby Way
The Case for Mars
First Man: The Life of Neil A. Armstrong
["Hal Fulton", "Robert Zubrin", "James R. Hansen"]

REXML поддерживает также API на основе стандарта SAX2 (с некоторыми добавлениями в духе Ruby) и экспериментальный анализатор на основе технологии «вытягивания». Они в этой книге не рассматриваются - можете обратиться к сайту http://ruby-doc.org или аналогичному ресурсу.

Оглавление книги


Генерация: 1.282. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз