Weird return type of XPath.match and XPath.first
Open
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 182
- Forks
- 99
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 8
Description
XPath.match always returns an array, even if the evaluated value is not a nodeset.
REXML::XPath.match(REXML::Document.new, '1 + 2') #=> [3]
Nokogiri::XML.parse('<root/>').xpath('1+2') #=> 3
XPath.first returns non-nodeset value. first of non-nodeset value doesn't make sense.
ref: https://github.com/ruby/rexml/pull/342#discussion_r3670807519
REXML::XPath.first(REXML::Document.new, '1 + 2') #=> 3
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the REXML::XPath.match and REXML::XPath.first entry points and read the discussion linked from ruby/rexml#342. Compare their handling of the non-nodeset expression shown here, then verify the behavior against the documented or existing expectations for scalar XPath results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100