libxml-ruby 0.7.0-x86-mswin32-60 → 0.8.0-x86-mswin32-60

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. data/CHANGES +24 -1
  2. data/README +48 -3
  3. data/benchmark/depixelate.rb +632 -0
  4. data/benchmark/hamlet.xml +9055 -0
  5. data/benchmark/sock_entries.xml +507 -0
  6. data/benchmark/throughput.rb +39 -0
  7. data/benchmark/xml_benchmarks.rb +222 -0
  8. data/doc/classes/LibXML.html +237 -0
  9. data/doc/classes/LibXML/XML.html +178 -0
  10. data/doc/classes/{XML → LibXML/XML}/Attr.html +213 -182
  11. data/doc/classes/{XML → LibXML/XML}/Attributes.html +126 -54
  12. data/doc/classes/{XML → LibXML/XML}/Document.html +299 -297
  13. data/doc/classes/{XML → LibXML/XML}/Dtd.html +10 -10
  14. data/doc/classes/{XML/XInclude → LibXML/XML}/Error.html +4 -4
  15. data/doc/classes/{XML → LibXML/XML}/HTMLParser.html +40 -40
  16. data/doc/classes/{XML → LibXML/XML}/InputCallbacks.html +10 -10
  17. data/doc/classes/{XML → LibXML/XML}/NS.html +46 -46
  18. data/doc/classes/{XML → LibXML/XML}/Node.html +935 -788
  19. data/doc/classes/LibXML/XML/Node/FailedModify.html +111 -0
  20. data/doc/classes/{XML → LibXML/XML}/Node/Set.html +69 -68
  21. data/doc/classes/{XML → LibXML/XML}/Node/SetNamespace.html +4 -4
  22. data/doc/classes/{XML/Node/FailedModify.html → LibXML/XML/Node/UnknownType.html} +4 -4
  23. data/doc/classes/{XML → LibXML/XML}/Parser.html +426 -389
  24. data/doc/classes/{XML → LibXML/XML}/Parser/Context.html +208 -208
  25. data/doc/classes/{XML → LibXML/XML}/Parser/ParseError.html +4 -4
  26. data/doc/classes/{XML → LibXML/XML}/Reader.html +288 -287
  27. data/doc/classes/{XML → LibXML/XML}/SaxParser.html +52 -52
  28. data/doc/classes/{XML/XPath/Context.html → LibXML/XML/Schema.html} +60 -32
  29. data/doc/classes/{XML → LibXML/XML}/State.html +4 -4
  30. data/doc/classes/{XML/Node/UnknownType.html → LibXML/XML/Tree.html} +5 -5
  31. data/doc/classes/{XML → LibXML/XML}/XInclude.html +5 -5
  32. data/doc/classes/{XML → LibXML/XML/XInclude}/Error.html +5 -5
  33. data/doc/classes/{XML → LibXML/XML}/XMLParserOptions.html +5 -5
  34. data/doc/classes/{XML → LibXML/XML}/XPath.html +23 -64
  35. data/doc/classes/LibXML/XML/XPath/Context.html +403 -0
  36. data/doc/classes/{XML/XPointer/Context → LibXML/XML/XPath}/InvalidPath.html +4 -4
  37. data/doc/classes/LibXML/XML/XPath/Object.html +623 -0
  38. data/doc/classes/{XML → LibXML/XML}/XPointer.html +12 -12
  39. data/doc/classes/{XML → LibXML/XML}/XPointer/Context.html +5 -5
  40. data/doc/classes/{XML/XPath → LibXML/XML/XPointer/Context}/InvalidPath.html +5 -5
  41. data/doc/classes/{XML → LibXML/XML}/XPointer/InvalidExpression.html +4 -4
  42. data/doc/classes/XML.html +17 -123
  43. data/doc/created.rid +1 -1
  44. data/doc/files/CHANGES.html +49 -25
  45. data/doc/files/LICENSE.html +1 -1
  46. data/doc/files/README.html +79 -4
  47. data/doc/files/VERSION.html +2 -2
  48. data/doc/files/ext/libxml/cbg_c.html +1 -1
  49. data/doc/files/ext/libxml/libxml_c.html +1 -1
  50. data/doc/files/ext/libxml/ruby_xml_attr_c.html +1 -1
  51. data/doc/files/ext/libxml/ruby_xml_attributes_c.html +1 -1
  52. data/doc/files/ext/libxml/ruby_xml_document_c.html +1 -1
  53. data/doc/files/ext/libxml/ruby_xml_dtd_c.html +1 -1
  54. data/doc/files/ext/libxml/ruby_xml_html_parser_c.html +1 -1
  55. data/doc/files/ext/libxml/ruby_xml_input_cbg_c.html +1 -1
  56. data/doc/files/ext/libxml/ruby_xml_node_c.html +1 -1
  57. data/doc/files/ext/libxml/ruby_xml_node_set_c.html +1 -1
  58. data/doc/files/ext/libxml/ruby_xml_ns_c.html +1 -1
  59. data/doc/files/ext/libxml/ruby_xml_parser_c.html +1 -1
  60. data/doc/files/ext/libxml/ruby_xml_parser_context_c.html +1 -1
  61. data/doc/files/ext/libxml/ruby_xml_reader_c.html +1 -1
  62. data/doc/files/ext/libxml/ruby_xml_sax_parser_c.html +1 -1
  63. data/doc/files/ext/libxml/ruby_xml_schema_c.html +1 -1
  64. data/doc/files/ext/libxml/ruby_xml_state_c.html +1 -1
  65. data/doc/files/ext/libxml/ruby_xml_xinclude_c.html +1 -1
  66. data/doc/files/ext/libxml/ruby_xml_xpath_c.html +1 -1
  67. data/doc/files/ext/libxml/ruby_xml_xpath_context_c.html +1 -1
  68. data/doc/files/ext/libxml/ruby_xml_xpath_object_c.html +1 -1
  69. data/doc/files/ext/libxml/ruby_xml_xpointer_c.html +1 -1
  70. data/doc/files/ext/libxml/ruby_xml_xpointer_context_c.html +1 -1
  71. data/doc/files/lib/libxml/attr_rb.html +108 -0
  72. data/doc/files/lib/libxml/attributes_rb.html +108 -0
  73. data/doc/files/lib/libxml/document_rb.html +108 -0
  74. data/doc/files/lib/libxml/node_rb.html +108 -0
  75. data/doc/files/lib/libxml/node_set_rb.html +108 -0
  76. data/doc/files/lib/libxml/parser_options_rb.html +107 -0
  77. data/doc/files/{ext/libxml/ruby_xml_tree_c.html → lib/libxml/parser_rb.html} +4 -4
  78. data/doc/files/lib/libxml/properties_rb.html +108 -0
  79. data/doc/files/lib/libxml/tree_rb.html +107 -0
  80. data/doc/files/lib/libxml_rb.html +12 -3
  81. data/doc/fr_class_index.html +34 -32
  82. data/doc/fr_file_index.html +9 -1
  83. data/doc/fr_method_index.html +362 -347
  84. data/ext/libxml/cbg.c +76 -76
  85. data/ext/libxml/libxml.c +4 -3
  86. data/ext/libxml/ruby_libxml.h +1 -1
  87. data/ext/libxml/ruby_xml_attr.c +4 -3
  88. data/ext/libxml/ruby_xml_attr.h +16 -16
  89. data/ext/libxml/ruby_xml_attributes.c +267 -266
  90. data/ext/libxml/ruby_xml_attributes.h +17 -17
  91. data/ext/libxml/ruby_xml_document.c +30 -59
  92. data/ext/libxml/ruby_xml_document.h +27 -27
  93. data/ext/libxml/ruby_xml_dtd.c +2 -1
  94. data/ext/libxml/ruby_xml_dtd.h +17 -17
  95. data/ext/libxml/ruby_xml_html_parser.c +3 -2
  96. data/ext/libxml/ruby_xml_html_parser.h +29 -29
  97. data/ext/libxml/ruby_xml_input_cbg.c +2 -1
  98. data/ext/libxml/ruby_xml_input_cbg.h +20 -20
  99. data/ext/libxml/ruby_xml_node.c +127 -470
  100. data/ext/libxml/ruby_xml_node.h +17 -17
  101. data/ext/libxml/ruby_xml_node_set.c +5 -4
  102. data/ext/libxml/ruby_xml_node_set.h +20 -20
  103. data/ext/libxml/ruby_xml_ns.c +3 -2
  104. data/ext/libxml/ruby_xml_ns.h +12 -12
  105. data/ext/libxml/ruby_xml_parser.c +20 -48
  106. data/ext/libxml/ruby_xml_parser.h +31 -31
  107. data/ext/libxml/ruby_xml_parser_context.c +3 -2
  108. data/ext/libxml/ruby_xml_parser_context.h +20 -20
  109. data/ext/libxml/ruby_xml_reader.c +2 -1
  110. data/ext/libxml/ruby_xml_sax_parser.c +3 -2
  111. data/ext/libxml/ruby_xml_sax_parser.h +56 -56
  112. data/ext/libxml/ruby_xml_schema.c +6 -0
  113. data/ext/libxml/ruby_xml_schema.h +16 -16
  114. data/ext/libxml/ruby_xml_state.c +13 -12
  115. data/ext/libxml/ruby_xml_state.h +1 -1
  116. data/ext/libxml/ruby_xml_xinclude.c +3 -2
  117. data/ext/libxml/ruby_xml_xinclude.h +13 -13
  118. data/ext/libxml/ruby_xml_xpath.c +35 -228
  119. data/ext/libxml/ruby_xml_xpath.h +22 -23
  120. data/ext/libxml/ruby_xml_xpath_context.c +223 -62
  121. data/ext/libxml/ruby_xml_xpath_context.h +15 -20
  122. data/ext/libxml/ruby_xml_xpath_object.c +63 -19
  123. data/ext/libxml/ruby_xml_xpointer.c +19 -15
  124. data/ext/libxml/ruby_xml_xpointer.h +27 -27
  125. data/ext/libxml/ruby_xml_xpointer_context.c +3 -2
  126. data/ext/libxml/ruby_xml_xpointer_context.h +18 -18
  127. data/ext/libxml/version.h +9 -9
  128. data/lib/libxml.rb +16 -128
  129. data/lib/libxml/attr.rb +45 -0
  130. data/lib/libxml/attributes.rb +15 -0
  131. data/lib/libxml/document.rb +54 -0
  132. data/lib/libxml/node.rb +132 -0
  133. data/lib/libxml/node_set.rb +27 -0
  134. data/lib/libxml/parser.rb +42 -0
  135. data/lib/libxml/parser_options.rb +25 -0
  136. data/lib/libxml/properties.rb +19 -0
  137. data/lib/libxml/tree.rb +29 -0
  138. data/lib/libxml_ruby.so +0 -0
  139. data/mingw/libxml_ruby.so +0 -0
  140. data/{work/task/setup → setup.rb} +1585 -1616
  141. data/test/gc.log +0 -0
  142. data/test/model/books.xml +147 -0
  143. data/{work/test/runner.rb → test/model/default_validation_bug.rb} +0 -0
  144. data/test/model/merge_bug_data.xml +58 -0
  145. data/test/model/rubynet.xml +78 -0
  146. data/test/model/rubynet_project +1 -0
  147. data/test/model/saxtest.xml +5 -0
  148. data/test/model/shiporder.xml +23 -0
  149. data/test/model/shiporder.xsd +31 -0
  150. data/test/model/simple.xml +7 -0
  151. data/test/model/soap.xml +27 -0
  152. data/test/model/xinclude.xml +5 -0
  153. data/test/tc_deprecated_require.rb +13 -0
  154. data/test/tc_xml_document.rb +57 -16
  155. data/test/tc_xml_document_write.rb +125 -10
  156. data/test/tc_xml_dtd.rb +22 -1
  157. data/test/tc_xml_node.rb +13 -0
  158. data/test/tc_xml_node_edit.rb +1 -1
  159. data/test/tc_xml_node_xlink.rb +1 -1
  160. data/test/tc_xml_parser.rb +64 -7
  161. data/test/tc_xml_properties.rb +42 -0
  162. data/test/tc_xml_reader.rb +4 -4
  163. data/test/tc_xml_sax_parser.rb +50 -50
  164. data/test/tc_xml_schema.rb +2 -2
  165. data/test/tc_xml_traversal.rb +220 -0
  166. data/test/tc_xml_xinclude.rb +12 -15
  167. data/test/tc_xml_xpath.rb +74 -6
  168. data/test/tc_xml_xpath_context.rb +72 -0
  169. data/test/test_suite.rb +6 -4
  170. data/vc/libxml_ruby.vcproj +1 -9
  171. metadata +92 -65
  172. data/doc/classes/XML/SiblingEnum.html +0 -142
  173. data/doc/classes/XML/Tree.html +0 -224
  174. data/doc/classes/XML/XPath/Object.html +0 -439
  175. data/ext/libxml/ruby_xml_tree.c +0 -43
  176. data/ext/libxml/ruby_xml_tree.h +0 -12
  177. data/test/ets_copy_bug2.rb +0 -21
  178. data/test/tc_xml_document_write2.rb +0 -54
  179. data/test/tc_xml_document_write3.rb +0 -96
  180. data/test/tc_xml_sax_parser2.rb +0 -51
  181. data/work/Rakefile +0 -247
  182. data/work/task/make +0 -26
  183. data/work/task/memory +0 -37
  184. data/work/task/rdoc +0 -39
  185. data/work/task/test +0 -29
  186. data/work/test/ets_runner.rb +0 -33
  187. data/work/test/libxml_test.rb +0 -3
  188. data/work/test/runner_ets.rb +0 -33
@@ -0,0 +1,39 @@
1
+ require 'rubygems'
2
+ require 'hpricot'
3
+ require 'libxml'
4
+ require 'rexml/document'
5
+
6
+ ITERATIONS = 3
7
+ NESTED_ITERATIONS = 5
8
+
9
+ def bm(name, filename, &block)
10
+ text = File.open(filename).read
11
+ length = text.length / 1024.0 / 1024.0
12
+ puts "#{filename}: #{name} (#{(length * 1024).round} kb)"
13
+ for j in 0 .. NESTED_ITERATIONS
14
+ s = Time.now.to_f
15
+ for i in 0 .. ITERATIONS
16
+ block.call(text)
17
+ end
18
+ timer = Time.now.to_f - s
19
+ puts "\t#{length * ITERATIONS / timer} MB/s"
20
+ end
21
+ end
22
+
23
+ def bm_suite(filenames)
24
+ filenames.each do |filename|
25
+ bm("LIBXML THROUGHPUT:", filename) do |text|
26
+ XML::Document.file(filename)
27
+ end
28
+
29
+ bm("HPRICOT THROUGHPUT:", filename) do |text|
30
+ Hpricot.XML(text)
31
+ end
32
+
33
+ bm("REXML THROUGHPUT:", filename) do |text|
34
+ REXML::Document.new(text)
35
+ end
36
+ end
37
+ end
38
+
39
+ bm_suite("hamlet.xml")
@@ -0,0 +1,222 @@
1
+ # From: https://svn.concord.org/svn/projects/trunk/common/ruby/xml_benchmarks/
2
+ #
3
+ # Each test has an XML Parser open a 98k XML document
4
+ # and count one type of leaf element (466 entries).
5
+ # This is repeated a total of 50 time sfor each Parser.
6
+ #
7
+ # These results were produced on:
8
+ # MacBook Pro
9
+ # 2.33 GHz Intel Core 2 Duo
10
+ # 4 GB memory
11
+ # running MacOS X 10.5.2
12
+ #
13
+ # Ruby versions tested:
14
+ # MRI: ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
15
+ # JRuby: ruby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3] on Java 1.5.0_13
16
+ # JRuby: ruby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3] on Java 1.6.0_03 (Soylatte)
17
+ #
18
+ # Library versions MRI:
19
+ # libxml-ruby 0.5.2.0
20
+ # hpricot 0.6
21
+ #
22
+ # Library versions JRuby:
23
+ # hpricot 0.6.161
24
+ # jrexml 0.5.3
25
+ #
26
+ # Summary data: 100 iterations, timings from second set
27
+ #
28
+ # Platform and method total time
29
+ # -----------------------------------------------------------
30
+ # JRuby (Java 1.6.0) jdom_document_builder 0.363
31
+ # MRI: libxml 0.389
32
+ # JRuby (Java 1.6.0 server) jdom_document_builder 0.412
33
+ # JRuby (server) jdom_document_builder 0.617
34
+ # JRuby: jdom_document_builder 1.451
35
+ # MRI: hpricot 2.056
36
+ # JRuby (Java 1.6.0 server) hpricot 2.272
37
+ # JRuby (Java 1.6.0) hpricot 2.273
38
+ # JRuby (server) hpricot 3.447
39
+ # JRuby: hpricot 6.198
40
+ # JRuby (Java 1.6.0 server) rexml 6.251
41
+ # JRuby (Java 1.6.0) rexml 6.356
42
+ # MRI: rexml 7.624
43
+ # JRuby (server) rexml 9.609
44
+ # JRuby: rexml 12.944
45
+ #
46
+ # Detailed data:
47
+ #
48
+ # $ ruby ./xml_benchmarks.rb
49
+ #
50
+ # Ruby version: MRI 1.8.6 (2007-09-24 rev 111), platform: universal-darwin9.0
51
+ #
52
+ # 100 times: Open 98k XML document and count one type of leaf element (466 entries)
53
+ #
54
+ # Rehearsal -------------------------------------------
55
+ # rexml 7.650000 0.040000 7.690000 ( 7.692767)
56
+ # hpricot 2.100000 0.030000 2.130000 ( 2.133564)
57
+ # libxml 0.390000 0.030000 0.420000 ( 0.419391)
58
+ # --------------------------------- total: 10.240000sec
59
+ #
60
+ # user system total real
61
+ # rexml 7.600000 0.010000 7.610000 ( 7.624436)
62
+ # hpricot 2.040000 0.020000 2.060000 ( 2.056690)
63
+ # libxml 0.380000 0.010000 0.390000 ( 0.389298)
64
+ #
65
+ # $ jruby ./xml_benchmarks.rb
66
+ #
67
+ # Ruby version: JRuby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3], platform: Java: version: 1.5.0_13
68
+ #
69
+ # 100 times: Open 98k XML document and count one type of leaf element (466 entries)
70
+ #
71
+ # Rehearsal ---------------------------------------------------------
72
+ # rexml 14.063000 0.000000 14.063000 ( 14.063000)
73
+ # hpricot 6.579000 0.000000 6.579000 ( 6.579000)
74
+ # jdom_document_builder 2.211000 0.000000 2.211000 ( 2.211000)
75
+ # ----------------------------------------------- total: 22.853000sec
76
+ #
77
+ # user system total real
78
+ # rexml 12.944000 0.000000 12.944000 ( 12.944000)
79
+ # hpricot 6.198000 0.000000 6.198000 ( 6.198000)
80
+ # jdom_document_builder 1.450000 0.000000 1.450000 ( 1.451000)
81
+ #
82
+ # $ jruby -J-server ./xml_benchmarks.rb
83
+ #
84
+ # Ruby version: JRuby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3], platform: Java: version: 1.5.0_13
85
+ #
86
+ # 100 times: Open 98k XML document and count one type of leaf element (466 entries)
87
+ #
88
+ # Rehearsal ---------------------------------------------------------
89
+ # rexml 13.212000 0.000000 13.212000 ( 13.212000)
90
+ # hpricot 6.992000 0.000000 6.992000 ( 6.993000)
91
+ # jdom_document_builder 1.873000 0.000000 1.873000 ( 1.873000)
92
+ # ----------------------------------------------- total: 22.077000sec
93
+ #
94
+ # user system total real
95
+ # rexml 9.611000 0.000000 9.611000 ( 9.609000)
96
+ # hpricot 3.446000 0.000000 3.446000 ( 3.447000)
97
+ # jdom_document_builder 0.616000 0.000000 0.616000 ( 0.617000)
98
+ #
99
+ #
100
+ # *** Now using: Java 1.6.0_03 (Soylatte) ***
101
+ #
102
+ # $ jruby ./xml_benchmarks.rb
103
+ #
104
+ # Ruby version: JRuby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3], platform: Java: version: 1.6.0_03-p3
105
+ #
106
+ # 100 times: Open 98k XML document and count one type of leaf element (466 entries)
107
+ #
108
+ # Rehearsal ---------------------------------------------------------
109
+ # rexml 9.976000 0.000000 9.976000 ( 9.976000)
110
+ # hpricot 4.129000 0.000000 4.129000 ( 4.129000)
111
+ # jdom_document_builder 2.287000 0.000000 2.287000 ( 2.287000)
112
+ # ----------------------------------------------- total: 16.392000sec
113
+ #
114
+ # user system total real
115
+ # rexml 6.357000 0.000000 6.357000 ( 6.356000)
116
+ # hpricot 2.274000 0.000000 2.274000 ( 2.273000)
117
+ # jdom_document_builder 0.363000 0.000000 0.363000 ( 0.363000)
118
+ #
119
+ # $ jruby -J-server ./xml_benchmarks.rb
120
+ #
121
+ # Ruby version: JRuby 1.8.6 (2008-03-20 rev 6255) [i386-jruby1.1RC3], platform: Java: version: 1.6.0_03-p3
122
+ #
123
+ # 100 times: Open 98k XML document and count one type of leaf element (466 entries)
124
+ #
125
+ # Rehearsal ---------------------------------------------------------
126
+ # rexml 9.936000 0.000000 9.936000 ( 9.935000)
127
+ # hpricot 4.074000 0.000000 4.074000 ( 4.074000)
128
+ # jdom_document_builder 1.355000 0.000000 1.355000 ( 1.355000)
129
+ # ----------------------------------------------- total: 15.365000sec
130
+ #
131
+ # user system total real
132
+ # rexml 6.251000 0.000000 6.251000 ( 6.251000)
133
+ # hpricot 2.273000 0.000000 2.273000 ( 2.272000)
134
+ # jdom_document_builder 0.412000 0.000000 0.412000 ( 0.412000)
135
+ #
136
+
137
+ require 'benchmark'
138
+ require "rexml/document"
139
+ require 'hpricot'
140
+
141
+ if RUBY_PLATFORM =~ /java/
142
+ include Java
143
+ import javax.xml.parsers.DocumentBuilder
144
+ import javax.xml.parsers.DocumentBuilderFactory
145
+ @dbf = DocumentBuilderFactory.new_instance
146
+ @ruby_info = "Ruby version: JRuby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} rev #{RUBY_PATCHLEVEL}) [i386-jruby#{JRUBY_VERSION}]"
147
+ @ruby_info << ", platform: Java, version #{java.lang.System.getProperty('java.version')}"
148
+ else
149
+ require 'libxml'
150
+ @xml_parser = XML::Parser.new
151
+ @ruby_info = "Ruby version: MRI #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}"# rev #{RUBY_PATCHLEVEL})"
152
+ @ruby_info << ", platform: #{RUBY_PLATFORM}"
153
+ end
154
+
155
+ @bundle_with_466_sock_entries = File.read("sock_entries.xml")
156
+
157
+ def rexml_count_socks
158
+ doc = REXML::Document.new(@bundle_with_466_sock_entries).root
159
+ socks = doc.elements.to_a('./sockEntries').length
160
+ end
161
+
162
+ unless RUBY_PLATFORM =~ /java/
163
+ def libxml_count_socks
164
+ @xml_parser.string = @bundle_with_466_sock_entries
165
+ doc = @xml_parser.parse.root
166
+ socks = doc.find('//sockEntries').length
167
+ end
168
+ end
169
+
170
+ def hpricot_count_socks
171
+ doc = Hpricot.XML(@bundle_with_466_sock_entries)
172
+ socks = doc.search("//sockEntries").length
173
+ end
174
+
175
+ if RUBY_PLATFORM =~ /java/
176
+ def jdom_document_builder_count_socks
177
+ doc = @dbf.new_document_builder.parse("bundle_with_466_sock_entries.xml").get_document_element
178
+ socks = doc.getElementsByTagName("sockEntries")
179
+ socks.get_length
180
+ end
181
+ end
182
+
183
+ n = 100
184
+ test_iterations = ARGV.first.to_i
185
+ test_iterations = 1 unless test_iterations > 1
186
+ puts
187
+ puts @ruby_info
188
+ puts
189
+ puts "#{n} times: Open 98k XML document and count one type of leaf element (466 entries)"
190
+ puts
191
+ print "running benchmark "
192
+ if test_iterations == 1
193
+ puts "once.\n\n"
194
+ else
195
+ puts "#{test_iterations} times.\n\n"
196
+ end
197
+ test_iterations.times do
198
+ Benchmark.bmbm do |x|
199
+ x.report("libxml") { n.times {libxml_count_socks} } unless RUBY_PLATFORM =~ /java/
200
+ x.report("hpricot") { n.times {hpricot_count_socks} }
201
+ x.report("rexml") { n.times {rexml_count_socks} }
202
+ x.report("jdom_document_builder") { n.times {jdom_document_builder_count_socks} } if RUBY_PLATFORM =~ /java/
203
+ end
204
+ puts
205
+ end
206
+
207
+ #
208
+ # jrexml doesn't appear to have any speedup in this test
209
+ #
210
+ # if RUBY_PLATFORM =~ /java/
211
+ # require 'jrexml'
212
+ # def rexml_with_jrexml_count_socks
213
+ # doc = REXML::Document.new(@bundle_with_466_sock_entries).root
214
+ # socks = doc.elements.to_a('./sockEntries').length
215
+ # end
216
+ #
217
+ # puts "\nNow add in JREXML to see if it speeds up rexml\n"
218
+ # Benchmark.bmbm do |x|
219
+ # x.report("rexml+jrexml") { n.times {rexml_with_jrexml_count_socks} }
220
+ # end
221
+ # puts
222
+ # end
@@ -0,0 +1,237 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Module: LibXML</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Module</strong></td>
53
+ <td class="class-name-in-header">LibXML</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/ext/libxml/libxml_c.html">
59
+ ext/libxml/libxml.c
60
+ </a>
61
+ <br />
62
+ <a href="../files/ext/libxml/ruby_xml_attr_c.html">
63
+ ext/libxml/ruby_xml_attr.c
64
+ </a>
65
+ <br />
66
+ <a href="../files/ext/libxml/ruby_xml_attributes_c.html">
67
+ ext/libxml/ruby_xml_attributes.c
68
+ </a>
69
+ <br />
70
+ <a href="../files/ext/libxml/ruby_xml_document_c.html">
71
+ ext/libxml/ruby_xml_document.c
72
+ </a>
73
+ <br />
74
+ <a href="../files/ext/libxml/ruby_xml_dtd_c.html">
75
+ ext/libxml/ruby_xml_dtd.c
76
+ </a>
77
+ <br />
78
+ <a href="../files/ext/libxml/ruby_xml_html_parser_c.html">
79
+ ext/libxml/ruby_xml_html_parser.c
80
+ </a>
81
+ <br />
82
+ <a href="../files/ext/libxml/ruby_xml_input_cbg_c.html">
83
+ ext/libxml/ruby_xml_input_cbg.c
84
+ </a>
85
+ <br />
86
+ <a href="../files/ext/libxml/ruby_xml_node_c.html">
87
+ ext/libxml/ruby_xml_node.c
88
+ </a>
89
+ <br />
90
+ <a href="../files/ext/libxml/ruby_xml_node_set_c.html">
91
+ ext/libxml/ruby_xml_node_set.c
92
+ </a>
93
+ <br />
94
+ <a href="../files/ext/libxml/ruby_xml_ns_c.html">
95
+ ext/libxml/ruby_xml_ns.c
96
+ </a>
97
+ <br />
98
+ <a href="../files/ext/libxml/ruby_xml_parser_c.html">
99
+ ext/libxml/ruby_xml_parser.c
100
+ </a>
101
+ <br />
102
+ <a href="../files/ext/libxml/ruby_xml_parser_context_c.html">
103
+ ext/libxml/ruby_xml_parser_context.c
104
+ </a>
105
+ <br />
106
+ <a href="../files/ext/libxml/ruby_xml_reader_c.html">
107
+ ext/libxml/ruby_xml_reader.c
108
+ </a>
109
+ <br />
110
+ <a href="../files/ext/libxml/ruby_xml_sax_parser_c.html">
111
+ ext/libxml/ruby_xml_sax_parser.c
112
+ </a>
113
+ <br />
114
+ <a href="../files/ext/libxml/ruby_xml_schema_c.html">
115
+ ext/libxml/ruby_xml_schema.c
116
+ </a>
117
+ <br />
118
+ <a href="../files/ext/libxml/ruby_xml_state_c.html">
119
+ ext/libxml/ruby_xml_state.c
120
+ </a>
121
+ <br />
122
+ <a href="../files/ext/libxml/ruby_xml_xinclude_c.html">
123
+ ext/libxml/ruby_xml_xinclude.c
124
+ </a>
125
+ <br />
126
+ <a href="../files/ext/libxml/ruby_xml_xpath_c.html">
127
+ ext/libxml/ruby_xml_xpath.c
128
+ </a>
129
+ <br />
130
+ <a href="../files/ext/libxml/ruby_xml_xpath_context_c.html">
131
+ ext/libxml/ruby_xml_xpath_context.c
132
+ </a>
133
+ <br />
134
+ <a href="../files/ext/libxml/ruby_xml_xpath_object_c.html">
135
+ ext/libxml/ruby_xml_xpath_object.c
136
+ </a>
137
+ <br />
138
+ <a href="../files/ext/libxml/ruby_xml_xpointer_c.html">
139
+ ext/libxml/ruby_xml_xpointer.c
140
+ </a>
141
+ <br />
142
+ <a href="../files/ext/libxml/ruby_xml_xpointer_context_c.html">
143
+ ext/libxml/ruby_xml_xpointer_context.c
144
+ </a>
145
+ <br />
146
+ <a href="../files/lib/libxml/attr_rb.html">
147
+ lib/libxml/attr.rb
148
+ </a>
149
+ <br />
150
+ <a href="../files/lib/libxml/attributes_rb.html">
151
+ lib/libxml/attributes.rb
152
+ </a>
153
+ <br />
154
+ <a href="../files/lib/libxml/document_rb.html">
155
+ lib/libxml/document.rb
156
+ </a>
157
+ <br />
158
+ <a href="../files/lib/libxml/node_rb.html">
159
+ lib/libxml/node.rb
160
+ </a>
161
+ <br />
162
+ <a href="../files/lib/libxml/node_set_rb.html">
163
+ lib/libxml/node_set.rb
164
+ </a>
165
+ <br />
166
+ <a href="../files/lib/libxml/parser_rb.html">
167
+ lib/libxml/parser.rb
168
+ </a>
169
+ <br />
170
+ <a href="../files/lib/libxml/parser_options_rb.html">
171
+ lib/libxml/parser_options.rb
172
+ </a>
173
+ <br />
174
+ <a href="../files/lib/libxml/properties_rb.html">
175
+ lib/libxml/properties.rb
176
+ </a>
177
+ <br />
178
+ <a href="../files/lib/libxml/tree_rb.html">
179
+ lib/libxml/tree.rb
180
+ </a>
181
+ <br />
182
+ </td>
183
+ </tr>
184
+
185
+ </table>
186
+ </div>
187
+ <!-- banner header -->
188
+
189
+ <div id="bodyContent">
190
+
191
+
192
+
193
+ <div id="contextContent">
194
+
195
+ <div id="description">
196
+ <p>
197
+ This is for backwards compatibility and is DEPRECATED
198
+ </p>
199
+
200
+ </div>
201
+
202
+
203
+ </div>
204
+
205
+
206
+ </div>
207
+
208
+
209
+ <!-- if includes -->
210
+
211
+ <div id="section">
212
+
213
+ <div id="class-list">
214
+ <h3 class="section-bar">Classes and Modules</h3>
215
+
216
+ Module <a href="LibXML/XML.html" class="link">LibXML::XML</a><br />
217
+
218
+ </div>
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <!-- if method_list -->
227
+
228
+
229
+ </div>
230
+
231
+
232
+ <div id="validator-badges">
233
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
234
+ </div>
235
+
236
+ </body>
237
+ </html>