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
|
#! /usr/local/bin/ruby
require 'xml/parser'
module XML
class Parser
def initialize(encoding = nil, nssep = nil)
@nstbl = {nil=>""}
end
def startElement(name, attr)
name =~ /^(([^;]*);)?(.+)$/
uri = $2
prefix = @nstbl[uri] || ""
name = $3
uri = uri || ""
print "(" + prefix + "[" + uri + "]:" + name + "\n"
end
def endElement(name)
name =~ /^(([^;]*);)?(.+)$/
uri = $2
prefix = @nstbl[uri] || ""
name = $3
uri = uri || ""
print ")" + prefix + "[" + uri + "]:" + name + "\n"
end
def startNamespaceDecl(prefix, uri)
prefix = "" if prefix.nil?
uri = uri || ""
@nstbl[uri] = prefix
end
def endNamespaceDecl(prefix)
end
end
end
p = XML::Parser.new(nil, ";")
p.parse($<.read)
|