Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > rexml/documentライブラリ > REXML::XPathクラス > match
match(element, path = nil, namespaces = {}, variables = {}) -> [Node]
[permalink][rdoc]element の path で指定した XPath 文字列にマッチするノードの配列を返します。
path に相対パスを指定した場合は element からの相対位置でマッチするノードを探します。絶対パスを指定した場合は element が属する文書のルート要素からの位置でマッチするノードを探します。 path を省略すると "*" を指定したことになります。
namespace で名前空間の対応付けを Hash で指定します。
variable で XPath 内の変数に対応する値を指定できます。 XPathインジェクション攻撃を避けるため、適切なエスケープを付加するため、に用います。
require 'rexml/document'
doc = REXML::Document.new(<<EOS)
<root xmlns:x='1'>
<a>
<b>b1</b>
<x:c />
<b>b2</b>
<d />
</a>
<b> b3 </b>
</root>
EOS
REXML::XPath.match(doc, "/root/a/b") # => [<b> ... </>, <b> ... </>]