Class: XPath::Expression::NextSibling

Inherits:
Multiple show all
Defined in:
lib/xpath/expression.rb

Constant Summary

Constants included from XPath

VERSION

Instance Method Summary collapse

Methods inherited from Multiple

#initialize

Methods inherited from XPath::Expression

#and, #apply, #current, #equals, #inverse, #is, #next_sibling, #normalize, #one_of, #or, #string, #string_literal, #to_s, #to_xpaths, #union, #where, #wrap_xpath

Methods included from XPath

#anywhere, #attr, #child, #contains, #current, #descendant, generate, #name, #text, #var, #varstring

Constructor Details

This class inherits a constructor from XPath::Expression::Multiple

Instance Method Details

#to_xpath(predicate = nil) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/xpath/expression.rb', line 65

def to_xpath(predicate=nil)
  if @expressions.length == 1
    "#{@left.to_xpath(predicate)}/following-sibling::*[1]/self::#{@expressions.first.to_xpath(predicate)}"
  else
    "#{@left.to_xpath(predicate)}/following-sibling::*[1]/self::*[#{@expressions.map { |e| "self::#{e.to_xpath(predicate)}" }.join(" | ")}]"
  end
end