パンくず
Ruby Cookbook
Navigating a Document with XPath
概要
Navigating a Document with XPath
内容
XPathでのデータ取得について。
サンプルコード
# encoding: utf-8 require_relative "../open_classes.rb" require 'rexml/document' xml = %{ <languages> <language name="java"> <name>Java</name> <type>Compile</type> </language> <language name="ruby"> <name>Ruby</name> <type>Script</type> </language> </languages> } languages = REXML::Document.new xml print_eval "REXML::XPath.first(languages, '//name')", binding print_eval "REXML::XPath.match(languages, '//name')", binding print_eval "REXML::XPath.match(languages, '//[@name=\"java\"]]')", binding # eachで個別処理可能 REXML::XPath.match(languages, '//name').each {|language|puts "language name=#{language}"}
出力
(REXML::XPath.first(languages, '//name')) => <name>Java</name> (REXML::XPath.match(languages, '//name')) => <name>Java</name> <name>Ruby</name> (REXML::XPath.match(languages, '//[@name="java"]]')) => <language name='java'> <name>Java</name> <type>Compile</type> </language> language name=<name>Java</name> language name=<name>Ruby</name>