1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#! /usr/local/bin/ruby
## Visitor test
## 1998 by yoshidam
##
require 'xml/dom/builder'
require 'xml/dom/visitor'
class Writer
def visit_Document(document)
document.children_accept(self)
end
def visit_Element(element)
attrs = ""
element.attributes.each do |attr|
attrs += " " + attr.to_s
end
print "<#{element.nodeName}#{attrs}>"
element.children_accept(self);
print "</#{element.nodeName}>"
end
def visit_ProcessingInstruction(pi)
print "<?" + pi.nodeValue + "?>"
end
def visit_Text(text)
print text.nodeValue
end
def visit_Comment(comment)
print "<!--" + comment.nodeValue + "-->"
end
def visit_CDATASection(cdata)
print "<![CDATA[" + cdata.nodeValue + "]]>"
end
end
doc = XML::DOM::Builder.new.parse($<.read)
doc.accept(Writer.new)
|