Class: XMLRPC::XMLParser::XMLTreeParser
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          AbstractTreeParser
         | |
| Instance Chain: 
          self,
          AbstractTreeParser
         | |
| Inherits: | XMLRPC::XMLParser::AbstractTreeParser 
 | 
| Defined in: | lib/xmlrpc/parser.rb | 
Overview
class NQXMLStreamParser
Class Method Summary
- .new ⇒ XMLTreeParser constructor
Instance Method Summary
- #_nodeType(node) private
- #createCleanedTree(str) private
- #methodCall_document(node) private
- #methodResponse_document(node) private
AbstractTreeParser - Inherited
| #parseMethodCall, #parseMethodResponse, #array, #assert, #base64, #boolean, #data, #dateTime, #double, #fault, | |
| #hasOnlyOneChild | Returns, when successfully the only child-node. | 
| #integer, #member, #methodCall, #methodName, #methodResponse, #name, #nodeMustBe, #param, #params, | |
| #removeWhitespacesAndComments | Removes all whitespaces but in the tags i4, i8, int, boolean.… | 
| #string, #struct, | |
| #text | _nodeType is defined in the subclass. | 
| #text_zero_one | The node  | 
| #v_nil, #value | |
Constructor Details
    .new  ⇒ XMLTreeParser 
  
# File 'lib/xmlrpc/parser.rb', line 645
def initialize require "xmltreebuilder" # The new XMLParser library (0.6.2+) uses a slightly different DOM implementation. # The following code removes the differences between both versions. if defined? XML::DOM::Builder return if defined? XML::DOM::Node::DOCUMENT # code below has been already executed klass = XML::DOM::Node klass.const_set(:DOCUMENT, klass::DOCUMENT_NODE) klass.const_set(:TEXT, klass::TEXT_NODE) klass.const_set(:COMMENT, klass::COMMENT_NODE) klass.const_set(:ELEMENT, klass::ELEMENT_NODE) end end
Instance Method Details
#_nodeType(node) (private)
[ GitHub ]# File 'lib/xmlrpc/parser.rb', line 662
def _nodeType(node) tp = node.nodeType if tp == XML::SimpleTree::Node::TEXT then :TEXT elsif tp == XML::SimpleTree::Node::COMMENT then :COMMENT elsif tp == XML::SimpleTree::Node::ELEMENT then :ELEMENT else :ELSE end end
#createCleanedTree(str) (private)
[ GitHub ]# File 'lib/xmlrpc/parser.rb', line 686
def createCleanedTree(str) doc = XML::SimpleTreeBuilder.new.parse(str) doc.documentElement.normalize removeWhitespacesAndComments(doc) doc end
#methodCall_document(node) (private)
[ GitHub ]# File 'lib/xmlrpc/parser.rb', line 679
def methodCall_document(node) assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT ) hasOnlyOneChild(node, "methodCall") methodCall(node.firstChild) end
#methodResponse_document(node) (private)
[ GitHub ]# File 'lib/xmlrpc/parser.rb', line 672
def methodResponse_document(node) assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT ) hasOnlyOneChild(node, "methodResponse") methodResponse(node.firstChild) end