File: event_reader.rb

package info (click to toggle)
libdb-ruby 0.6.5-6
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,612 kB
  • ctags: 3,979
  • sloc: ansic: 13,984; cpp: 8,739; ruby: 7,864; sh: 47; makefile: 8
file content (55 lines) | stat: -rw-r--r-- 1,718 bytes parent folder | download | duplicates (4)
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
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/ruby

$LOAD_PATH.unshift Dir.pwd.sub(%r{(bdb-\d\.\d\.\d/).*}, '\1bdbxml2')
require 'bdbxml'

File::unlink("exa.dbxml") rescue nil

man = BDB::XML::Manager.new
con = man.create_container("exa.dbxml")
at_exit {
   con.close
   man.close
}
con.put("doc", "<root><a a1=\"val1\">a text</a><b><c cattr=\"c1\"><d/></c></b></root>")

doc = con.get("doc")
rdr = doc.event_reader
while rdr.next?
   case rdr.next
   when BDB::XML::EventReader::StartElement
      puts "BDB::XML::EventReader::StartElement"
   when BDB::XML::EventReader::EndElement
      puts "BDB::XML::EventReader::EndElement"
   when BDB::XML::EventReader::StartDocument
      puts "BDB::XML::EventReader::StartDocument"
   when BDB::XML::EventReader::EndDocument
      puts "BDB::XML::EventReader::EndDocument"
   when BDB::XML::EventReader::StartEntityReference
      puts "BDB::XML::EventReader::StartEntityReference"
   when BDB::XML::EventReader::EndEntityReference
      puts "BDB::XML::EventReader::EndEntityReference"
   when BDB::XML::EventReader::Characters
      puts "BDB::XML::EventReader::Characters"
   when BDB::XML::EventReader::CDATA
      puts "BDB::XML::EventReader::CDATA"
   when BDB::XML::EventReader::Comment
      puts "BDB::XML::EventReader::Comment"
   when BDB::XML::EventReader::Whitespace
      puts "BDB::XML::EventReader::Whitespace"
   when BDB::XML::EventReader::DTD
      puts "BDB::XML::EventReader::DTD"
   when BDB::XML::EventReader::ProcessingInstruction
      puts "BDB::XML::EventReader::ProcessingInstruction"
   end
end
rdr.close

val = BDB::XML::Value.new(doc)
rdr = val.event_reader
doc1 = man.create_document
doc1.name = 'doc1'
doc1.content = rdr
con.put(doc1)
doc1 = con.get('doc1')
puts doc1.content