Module: Handsoap::XmlQueryFront::XmlElement
- Included in:
- LibXMLDriver, NokogiriDriver, REXMLDriver
- Defined in:
- lib/handsoap/xml_query_front.rb
Overview
Wraps the underlying (native) xml driver, and provides a uniform interface.
Instance Method Summary (collapse)
-
- (Object) /(expression)
alias of xpath.
-
- (Object) [](attribute_name)
Returns the attribute value of the underlying element.
-
- (Object) add_namespace(prefix, uri)
Registers a prefix to refer to a namespace.
-
- (Object) assert_prefixes!(expression, ns)
Checks that an xpath-query doesn't refer to any undefined prefixes in ns.
-
- (XmlElement) initialize(element, namespaces = {})
A new instance of XmlElement.
-
- (Object) native_element
Returns the underlying native element.
-
- (Object) node_name
Returns the node name of the current element.
-
- (Object) to_boolean
Returns the value of the element as an boolean.
-
- (Object) to_date
Returns the value of the element as a ruby Time object.
-
- (Object) to_f
Returns the value of the element as a float.
-
- (Object) to_i
Returns the value of the element as an integer.
-
- (Object) to_raw
Returns the outer XML for this element, preserving the original formatting.
-
- (Object) to_s
Returns the inner text content of this element, or the value (if it's an attr or textnode).
-
- (Object) to_xml
Returns the outer XML for this element.
-
- (Object) xpath(expression, ns = nil)
Queries the document with XPath, relative to the current element.
Instance Method Details
- (Object) /(expression)
alias of xpath
194 195 196 |
# File 'lib/handsoap/xml_query_front.rb', line 194 def /(expression) self.xpath(expression) end |
- (Object) [](attribute_name)
Returns the attribute value of the underlying element.
Shortcut for:
(node/"@attribute_name").to_s
202 203 204 |
# File 'lib/handsoap/xml_query_front.rb', line 202 def [](attribute_name) raise NotImplementedError.new end |
- (Object) add_namespace(prefix, uri)
Registers a prefix to refer to a namespace.
You can either register a nemspace with this function or pass it explicitly to the xpath method.
118 119 120 |
# File 'lib/handsoap/xml_query_front.rb', line 118 def add_namespace(prefix, uri) @namespaces[prefix] = uri end |
- (Object) assert_prefixes!(expression, ns)
Checks that an xpath-query doesn't refer to any undefined prefixes in ns
122 123 124 125 126 |
# File 'lib/handsoap/xml_query_front.rb', line 122 def assert_prefixes!(expression, ns) expression.scan(/([a-zA-Z_][a-zA-Z0-9_.-]*):[^:]+/).map{|m| m[0] }.each do |prefix| raise "Undefined prefix '#{prefix}' in #{ns.inspect}" if ns[prefix].nil? end end |
- (XmlElement) initialize(element, namespaces = {})
A new instance of XmlElement
111 112 113 114 |
# File 'lib/handsoap/xml_query_front.rb', line 111 def initialize(element, namespaces = {}) @element = element @namespaces = namespaces end |
- (Object) native_element
Returns the underlying native element.
You shouldn't need to use this, since doing so would void portability.
168 169 170 |
# File 'lib/handsoap/xml_query_front.rb', line 168 def native_element @element end |
- (Object) node_name
Returns the node name of the current element.
172 173 174 |
# File 'lib/handsoap/xml_query_front.rb', line 172 def node_name raise NotImplementedError.new end |
- (Object) to_boolean
Returns the value of the element as an boolean.
See to_s
146 147 148 149 150 |
# File 'lib/handsoap/xml_query_front.rb', line 146 def to_boolean t = self.to_s return if t.nil? t.downcase == 'true' end |
- (Object) to_date
Returns the value of the element as a ruby Time object.
See to_s
154 155 156 157 158 |
# File 'lib/handsoap/xml_query_front.rb', line 154 def to_date t = self.to_s return if t.nil? Time.iso8601(t) end |
- (Object) to_f
Returns the value of the element as a float.
See to_s
138 139 140 141 142 |
# File 'lib/handsoap/xml_query_front.rb', line 138 def to_f t = self.to_s return if t.nil? t.to_f end |
- (Object) to_i
Returns the value of the element as an integer.
See to_s
130 131 132 133 134 |
# File 'lib/handsoap/xml_query_front.rb', line 130 def to_i t = self.to_s return if t.nil? t.to_i end |
- (Object) to_raw
Returns the outer XML for this element, preserving the original formatting.
190 191 192 |
# File 'lib/handsoap/xml_query_front.rb', line 190 def to_raw raise NotImplementedError.new end |
- (Object) to_s
Returns the inner text content of this element, or the value (if it's an attr or textnode).
The output is a UTF-8 encoded string, without xml-entities.
162 163 164 |
# File 'lib/handsoap/xml_query_front.rb', line 162 def to_s raise NotImplementedError.new end |
- (Object) to_xml
Returns the outer XML for this element.
186 187 188 |
# File 'lib/handsoap/xml_query_front.rb', line 186 def to_xml raise NotImplementedError.new end |
- (Object) xpath(expression, ns = nil)
Queries the document with XPath, relative to the current element.
ns Should be a Hash of prefix => namespace
Returns a NodeSelection
See add_namespace
182 183 184 |
# File 'lib/handsoap/xml_query_front.rb', line 182 def xpath(expression, ns = nil) raise NotImplementedError.new end |