Книга: Программирование на языке 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 или аналогичному ресурсу.
- Применение осей XPath
- Стандартные интерфейсы расширений
- 8.5. Интерфейсы аудиоустройств
- Глава 2. Интерфейсы
- 8.2. Интерфейсы
- Другие инструменты для осуществления резервного копирования
- Другие изменения в 7-й версии InterBase
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- Датчик расположения и другие датчики
- 2.2 Интерфейсы IDE, EIDE и АТА
- 6.4 Другие файловые системы