mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/xmlrpc.rb: Removed broken parser named XMLTreeParser.
Required gem of its parser didn't compile on newer Ruby versions. [fix GH-1271][ruby-core:59590][Bug #9370] * lib/xmlrpc/config.rb: ditto. * lib/xmlrpc/parser.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a400386dbe
commit
d8e3a92411
4 changed files with 13 additions and 78 deletions
|
@ -567,67 +567,6 @@ module XMLRPC # :nodoc:
|
|||
|
||||
end # module StreamParserMixin
|
||||
|
||||
class XMLStreamParser < AbstractStreamParser
|
||||
def initialize
|
||||
require "xmlparser"
|
||||
@parser_class = Class.new(::XMLParser) {
|
||||
include StreamParserMixin
|
||||
}
|
||||
end
|
||||
end # class XMLStreamParser
|
||||
|
||||
class XMLTreeParser < AbstractTreeParser
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
def methodResponse_document(node)
|
||||
assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
|
||||
hasOnlyOneChild(node, "methodResponse")
|
||||
|
||||
methodResponse(node.firstChild)
|
||||
end
|
||||
|
||||
def methodCall_document(node)
|
||||
assert( node.nodeType == XML::SimpleTree::Node::DOCUMENT )
|
||||
hasOnlyOneChild(node, "methodCall")
|
||||
|
||||
methodCall(node.firstChild)
|
||||
end
|
||||
|
||||
def createCleanedTree(str)
|
||||
doc = XML::SimpleTreeBuilder.new.parse(str)
|
||||
doc.documentElement.normalize
|
||||
removeWhitespacesAndComments(doc)
|
||||
doc
|
||||
end
|
||||
|
||||
end # class XMLParser
|
||||
|
||||
class REXMLStreamParser < AbstractStreamParser
|
||||
def initialize
|
||||
require "rexml/document"
|
||||
|
@ -753,10 +692,7 @@ module XMLRPC # :nodoc:
|
|||
end
|
||||
end
|
||||
|
||||
XMLParser = XMLTreeParser
|
||||
|
||||
Classes = [XMLStreamParser, XMLTreeParser,
|
||||
REXMLStreamParser, XMLScanStreamParser,
|
||||
Classes = [REXMLStreamParser, XMLScanStreamParser,
|
||||
LibXMLStreamParser]
|
||||
|
||||
# yields an instance of each installed parser
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue