X7ROOT File Manager
Current Path:
/opt/alt/ruby19/lib64/ruby/1.9.1/rexml
opt
/
alt
/
ruby19
/
lib64
/
ruby
/
1.9.1
/
rexml
/
??
..
??
attlistdecl.rb
(1.89 KB)
??
attribute.rb
(5.39 KB)
??
cdata.rb
(1.54 KB)
??
child.rb
(2.63 KB)
??
comment.rb
(2.14 KB)
??
doctype.rb
(6.58 KB)
??
document.rb
(8.28 KB)
??
dtd
??
element.rb
(43.85 KB)
??
encoding.rb
(1.49 KB)
??
entity.rb
(5.53 KB)
??
formatters
??
functions.rb
(11.27 KB)
??
instruction.rb
(2.01 KB)
??
light
??
namespace.rb
(1.09 KB)
??
node.rb
(2.13 KB)
??
output.rb
(392 B)
??
parent.rb
(4.33 KB)
??
parseexception.rb
(1.22 KB)
??
parsers
??
quickpath.rb
(9.08 KB)
??
rexml.rb
(1.65 KB)
??
sax2listener.rb
(3.6 KB)
??
source.rb
(7.29 KB)
??
streamlistener.rb
(3.88 KB)
??
syncenumerator.rb
(685 B)
??
text.rb
(13.57 KB)
??
undefinednamespaceexception.rb
(210 B)
??
validation
??
xmldecl.rb
(2.78 KB)
??
xmltokens.rb
(526 B)
??
xpath.rb
(3.31 KB)
??
xpath_parser.rb
(25.7 KB)
Editing: xpath.rb
require 'rexml/functions' require 'rexml/xpath_parser' module REXML # Wrapper class. Use this class to access the XPath functions. class XPath include Functions # A base Hash object, supposing to be used when initializing a # default empty namespaces set, but is currently unused. # TODO: either set the namespaces=EMPTY_HASH, or deprecate this. EMPTY_HASH = {} # Finds and returns the first node that matches the supplied xpath. # element:: # The context element # path:: # The xpath to search for. If not supplied or nil, returns the first # node matching '*'. # namespaces:: # If supplied, a Hash which defines a namespace mapping. # variables:: # If supplied, a Hash which maps $variables in the query # to values. This can be used to avoid XPath injection attacks # or to automatically handle escaping string values. # # XPath.first( node ) # XPath.first( doc, "//b"} ) # XPath.first( node, "a/x:b", { "x"=>"http://doofus" } ) # XPath.first( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"}) def XPath::first element, path=nil, namespaces=nil, variables={} raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash) raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash) parser = XPathParser.new parser.namespaces = namespaces parser.variables = variables path = "*" unless path element = [element] unless element.kind_of? Array parser.parse(path, element).flatten[0] end # Iterates over nodes that match the given path, calling the supplied # block with the match. # element:: # The context element # path:: # The xpath to search for. If not supplied or nil, defaults to '*' # namespaces:: # If supplied, a Hash which defines a namespace mapping # variables:: # If supplied, a Hash which maps $variables in the query # to values. This can be used to avoid XPath injection attacks # or to automatically handle escaping string values. # # XPath.each( node ) { |el| ... } # XPath.each( node, '/*[@attr='v']' ) { |el| ... } # XPath.each( node, 'ancestor::x' ) { |el| ... } # XPath.each( node, '/book/publisher/text()=$publisher', {}, {"publisher"=>"O'Reilly"}) \ # {|el| ... } def XPath::each element, path=nil, namespaces=nil, variables={}, &block raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or namespaces.kind_of?(Hash) raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of?(Hash) parser = XPathParser.new parser.namespaces = namespaces parser.variables = variables path = "*" unless path element = [element] unless element.kind_of? Array parser.parse(path, element).each( &block ) end # Returns an array of nodes matching a given XPath. def XPath::match element, path=nil, namespaces=nil, variables={} parser = XPathParser.new parser.namespaces = namespaces parser.variables = variables path = "*" unless path element = [element] unless element.kind_of? Array parser.parse(path,element) end end end
Upload File
Create Folder