class XMLRPC::XMLParser::XMLTreeParser

Public Class Methods

new() click to toggle source
# 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

Private Instance Methods

_nodeType(node) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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