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 646
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 663
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 687
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 680
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 673
def methodResponse_document(node) assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT ) hasOnlyOneChild(node, "methodResponse") methodResponse(node.firstChild) end