[ruby-list:50731] 2.6.0でREXML::XPath.matchの振る舞いが変わった?

From: Yasuhiro KIMURA <yasu@...>
Date: 2018-12-26 04:56:38 UTC
List: ruby-list #50731
木村と申します。

2.6.0が出たのでさっそくインストールして使っているスクリプトの動作確認
をしたのですが、REXML::XPath.match振る舞いが2.5以前と異なることに気づ
きました。

----------------------------------------------------------------------
#!/usr/bin/ruby -W
# coding: utf-8

require 'rexml/document'

doc = REXML::Document.new(<<XML)
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  </head>
  <body id="test">
  </body>
</html>
XML
elements = REXML::XPath.match(doc, "//*[@null:id='test']", {'null' => ''})
p elements.length
----------------------------------------------------------------------

以下のようなスクリプトを実行すると2.5.3では"1"と表示されますが2.6.0で
は"0"と表示されます。

2.6ではXPath式の解釈に何か変更があったのでしょうか。

---
木村 康浩

In This Thread

Prev Next