Forum: Ruby REXML -- Parsing doctypes (and some some bugs)

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Daniel H. (Guest)
on 2005-12-23 20:45
(Received via mailing list)
(1) How does one parse a doctype in REXML?

Hack solution --
require 'rexml/document'
data =<<EOF
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE Resource SYSTEM "foo.dtd">
("@long_name")[1..-2] # => "foo.dtd"

There must be a simple solution I am missing, what is it?

(2) In rexml/dtd/elementdecl, PATTERN_RE is defined twice, issuing a
warning (see

require 'rexml/dtd/dtd'
data =<<EOF
<!ELEMENT foo    (bar,baz)>
<!ELEMENT bar    (#PCDATA)>
<!ELEMENT baz    (#PCDATA)>

p REXML::DTD::Parser.parse(data)
# => /opt/local/lib/ruby/1.8/rexml/dtd/elementdecl.rb:8: warning:
already initialized constant PATTERN_RE
# => /opt/local/lib/ruby/1.8/rexml/dtd/dtd.rb:25:in `parse_helper':
undefined method `PATTERN_RE' for REXML::DTD::ElementDecl:Class
# =>        from /opt/local/lib/ruby/1.8/rexml/dtd/dtd.rb:14:in `parse'

-- Daniel
This topic is locked and can not be replied to.