boy11-2 发表于 2011-03-15 16:45

Ruby 使用 xmlparser 解析 XML 信息

require 'xmlparser'

class XMLRetry<Exception; end

class SampleParser<XMLParser
private
def startElement(name, attr)
    if name == "person"
       attr.each do |key, value|
         print "Found person of type #{value}.\n"
       end
    end
    if name == "name"
      $print_cdata = true
      self.defaultCurrent
    else
      $print_cdata = false

    end
end

def endElement(name)
    if name == "name"
      $print_cdata = false
    end
end

def character(data)
    if $print_cdata
      puts ("\tName is: #{data}")
    end
end

end

xml = $<.read

parser = SampleParser.new
def parser.unknownEncoding(e)
raise XMLRetry, e
end

begin
parser.parse(xml)
rescue XMLRetry
newencoding = nil
e = $!.to_s
parser = SampleParser.new(newencoding)
retry
rescue XMLParserError
line = parser.line
print "Parse error(#{line}): #{$!}\n"
end
页: [1]
查看完整版本: Ruby 使用 xmlparser 解析 XML 信息