nokogiri 1.6.2.rc1-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

Files changed (263) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +26 -0
  3. data/.editorconfig +17 -0
  4. data/.gemtest +0 -0
  5. data/.travis.yml +25 -0
  6. data/CHANGELOG.ja.rdoc +857 -0
  7. data/CHANGELOG.rdoc +880 -0
  8. data/C_CODING_STYLE.rdoc +33 -0
  9. data/Gemfile +21 -0
  10. data/Manifest.txt +371 -0
  11. data/README.ja.rdoc +112 -0
  12. data/README.rdoc +180 -0
  13. data/ROADMAP.md +89 -0
  14. data/Rakefile +351 -0
  15. data/STANDARD_RESPONSES.md +47 -0
  16. data/Y_U_NO_GEMSPEC.md +155 -0
  17. data/bin/nokogiri +78 -0
  18. data/build_all +130 -0
  19. data/dependencies.yml +4 -0
  20. data/ext/nokogiri/depend +358 -0
  21. data/ext/nokogiri/extconf.rb +453 -0
  22. data/ext/nokogiri/html_document.c +170 -0
  23. data/ext/nokogiri/html_document.h +10 -0
  24. data/ext/nokogiri/html_element_description.c +279 -0
  25. data/ext/nokogiri/html_element_description.h +10 -0
  26. data/ext/nokogiri/html_entity_lookup.c +32 -0
  27. data/ext/nokogiri/html_entity_lookup.h +8 -0
  28. data/ext/nokogiri/html_sax_parser_context.c +116 -0
  29. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  30. data/ext/nokogiri/html_sax_push_parser.c +87 -0
  31. data/ext/nokogiri/html_sax_push_parser.h +9 -0
  32. data/ext/nokogiri/nokogiri.c +148 -0
  33. data/ext/nokogiri/nokogiri.h +164 -0
  34. data/ext/nokogiri/xml_attr.c +94 -0
  35. data/ext/nokogiri/xml_attr.h +9 -0
  36. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  37. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  38. data/ext/nokogiri/xml_cdata.c +56 -0
  39. data/ext/nokogiri/xml_cdata.h +9 -0
  40. data/ext/nokogiri/xml_comment.c +54 -0
  41. data/ext/nokogiri/xml_comment.h +9 -0
  42. data/ext/nokogiri/xml_document.c +577 -0
  43. data/ext/nokogiri/xml_document.h +23 -0
  44. data/ext/nokogiri/xml_document_fragment.c +48 -0
  45. data/ext/nokogiri/xml_document_fragment.h +10 -0
  46. data/ext/nokogiri/xml_dtd.c +202 -0
  47. data/ext/nokogiri/xml_dtd.h +10 -0
  48. data/ext/nokogiri/xml_element_content.c +123 -0
  49. data/ext/nokogiri/xml_element_content.h +10 -0
  50. data/ext/nokogiri/xml_element_decl.c +69 -0
  51. data/ext/nokogiri/xml_element_decl.h +9 -0
  52. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  53. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  54. data/ext/nokogiri/xml_entity_decl.c +110 -0
  55. data/ext/nokogiri/xml_entity_decl.h +10 -0
  56. data/ext/nokogiri/xml_entity_reference.c +52 -0
  57. data/ext/nokogiri/xml_entity_reference.h +9 -0
  58. data/ext/nokogiri/xml_io.c +56 -0
  59. data/ext/nokogiri/xml_io.h +11 -0
  60. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  61. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  62. data/ext/nokogiri/xml_namespace.c +78 -0
  63. data/ext/nokogiri/xml_namespace.h +13 -0
  64. data/ext/nokogiri/xml_node.c +1541 -0
  65. data/ext/nokogiri/xml_node.h +13 -0
  66. data/ext/nokogiri/xml_node_set.c +467 -0
  67. data/ext/nokogiri/xml_node_set.h +14 -0
  68. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  69. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  70. data/ext/nokogiri/xml_reader.c +681 -0
  71. data/ext/nokogiri/xml_reader.h +10 -0
  72. data/ext/nokogiri/xml_relax_ng.c +161 -0
  73. data/ext/nokogiri/xml_relax_ng.h +9 -0
  74. data/ext/nokogiri/xml_sax_parser.c +312 -0
  75. data/ext/nokogiri/xml_sax_parser.h +39 -0
  76. data/ext/nokogiri/xml_sax_parser_context.c +262 -0
  77. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  78. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  79. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  80. data/ext/nokogiri/xml_schema.c +205 -0
  81. data/ext/nokogiri/xml_schema.h +9 -0
  82. data/ext/nokogiri/xml_syntax_error.c +63 -0
  83. data/ext/nokogiri/xml_syntax_error.h +13 -0
  84. data/ext/nokogiri/xml_text.c +52 -0
  85. data/ext/nokogiri/xml_text.h +9 -0
  86. data/ext/nokogiri/xml_xpath_context.c +307 -0
  87. data/ext/nokogiri/xml_xpath_context.h +10 -0
  88. data/ext/nokogiri/xslt_stylesheet.c +270 -0
  89. data/ext/nokogiri/xslt_stylesheet.h +14 -0
  90. data/lib/nokogiri.rb +137 -0
  91. data/lib/nokogiri/2.0/nokogiri.so +0 -0
  92. data/lib/nokogiri/2.1/nokogiri.so +0 -0
  93. data/lib/nokogiri/css.rb +27 -0
  94. data/lib/nokogiri/css/node.rb +52 -0
  95. data/lib/nokogiri/css/parser.rb +715 -0
  96. data/lib/nokogiri/css/parser.y +249 -0
  97. data/lib/nokogiri/css/parser_extras.rb +91 -0
  98. data/lib/nokogiri/css/syntax_error.rb +7 -0
  99. data/lib/nokogiri/css/tokenizer.rb +152 -0
  100. data/lib/nokogiri/css/tokenizer.rex +55 -0
  101. data/lib/nokogiri/css/xpath_visitor.rb +219 -0
  102. data/lib/nokogiri/decorators/slop.rb +35 -0
  103. data/lib/nokogiri/html.rb +37 -0
  104. data/lib/nokogiri/html/builder.rb +35 -0
  105. data/lib/nokogiri/html/document.rb +333 -0
  106. data/lib/nokogiri/html/document_fragment.rb +41 -0
  107. data/lib/nokogiri/html/element_description.rb +23 -0
  108. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  109. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  110. data/lib/nokogiri/html/sax/parser.rb +52 -0
  111. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  112. data/lib/nokogiri/html/sax/push_parser.rb +16 -0
  113. data/lib/nokogiri/syntax_error.rb +4 -0
  114. data/lib/nokogiri/version.rb +106 -0
  115. data/lib/nokogiri/xml.rb +73 -0
  116. data/lib/nokogiri/xml/attr.rb +14 -0
  117. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  118. data/lib/nokogiri/xml/builder.rb +443 -0
  119. data/lib/nokogiri/xml/cdata.rb +11 -0
  120. data/lib/nokogiri/xml/character_data.rb +7 -0
  121. data/lib/nokogiri/xml/document.rb +279 -0
  122. data/lib/nokogiri/xml/document_fragment.rb +112 -0
  123. data/lib/nokogiri/xml/dtd.rb +32 -0
  124. data/lib/nokogiri/xml/element_content.rb +36 -0
  125. data/lib/nokogiri/xml/element_decl.rb +13 -0
  126. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  127. data/lib/nokogiri/xml/namespace.rb +13 -0
  128. data/lib/nokogiri/xml/node.rb +982 -0
  129. data/lib/nokogiri/xml/node/save_options.rb +61 -0
  130. data/lib/nokogiri/xml/node_set.rb +355 -0
  131. data/lib/nokogiri/xml/notation.rb +6 -0
  132. data/lib/nokogiri/xml/parse_options.rb +98 -0
  133. data/lib/nokogiri/xml/pp.rb +2 -0
  134. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  135. data/lib/nokogiri/xml/pp/node.rb +56 -0
  136. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  137. data/lib/nokogiri/xml/reader.rb +112 -0
  138. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  139. data/lib/nokogiri/xml/sax.rb +4 -0
  140. data/lib/nokogiri/xml/sax/document.rb +171 -0
  141. data/lib/nokogiri/xml/sax/parser.rb +123 -0
  142. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  143. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  144. data/lib/nokogiri/xml/schema.rb +63 -0
  145. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  146. data/lib/nokogiri/xml/text.rb +9 -0
  147. data/lib/nokogiri/xml/xpath.rb +10 -0
  148. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  149. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  150. data/lib/nokogiri/xslt.rb +56 -0
  151. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  152. data/lib/xsd/xmlparser/nokogiri.rb +102 -0
  153. data/suppressions/README.txt +1 -0
  154. data/suppressions/nokogiri_ree-1.8.7.358.supp +61 -0
  155. data/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
  156. data/suppressions/nokogiri_ruby-1.9.2.320.supp +28 -0
  157. data/suppressions/nokogiri_ruby-1.9.3.327.supp +28 -0
  158. data/tasks/nokogiri.org.rb +24 -0
  159. data/tasks/test.rb +95 -0
  160. data/test/css/test_nthiness.rb +222 -0
  161. data/test/css/test_parser.rb +358 -0
  162. data/test/css/test_tokenizer.rb +198 -0
  163. data/test/css/test_xpath_visitor.rb +96 -0
  164. data/test/decorators/test_slop.rb +16 -0
  165. data/test/files/2ch.html +108 -0
  166. data/test/files/address_book.rlx +12 -0
  167. data/test/files/address_book.xml +10 -0
  168. data/test/files/atom.xml +344 -0
  169. data/test/files/bar/bar.xsd +4 -0
  170. data/test/files/bogus.xml +0 -0
  171. data/test/files/dont_hurt_em_why.xml +422 -0
  172. data/test/files/encoding.html +82 -0
  173. data/test/files/encoding.xhtml +84 -0
  174. data/test/files/exslt.xml +8 -0
  175. data/test/files/exslt.xslt +35 -0
  176. data/test/files/foo/foo.xsd +4 -0
  177. data/test/files/metacharset.html +10 -0
  178. data/test/files/noencoding.html +47 -0
  179. data/test/files/po.xml +32 -0
  180. data/test/files/po.xsd +66 -0
  181. data/test/files/saml/saml20assertion_schema.xsd +283 -0
  182. data/test/files/saml/saml20protocol_schema.xsd +302 -0
  183. data/test/files/saml/xenc_schema.xsd +146 -0
  184. data/test/files/saml/xmldsig_schema.xsd +318 -0
  185. data/test/files/shift_jis.html +10 -0
  186. data/test/files/shift_jis.xml +5 -0
  187. data/test/files/shift_jis_no_charset.html +9 -0
  188. data/test/files/snuggles.xml +3 -0
  189. data/test/files/staff.dtd +10 -0
  190. data/test/files/staff.xml +59 -0
  191. data/test/files/staff.xslt +32 -0
  192. data/test/files/test_document_url/bar.xml +2 -0
  193. data/test/files/test_document_url/document.dtd +4 -0
  194. data/test/files/test_document_url/document.xml +6 -0
  195. data/test/files/tlm.html +850 -0
  196. data/test/files/to_be_xincluded.xml +2 -0
  197. data/test/files/valid_bar.xml +2 -0
  198. data/test/files/xinclude.xml +4 -0
  199. data/test/helper.rb +164 -0
  200. data/test/html/sax/test_parser.rb +141 -0
  201. data/test/html/sax/test_parser_context.rb +46 -0
  202. data/test/html/test_builder.rb +164 -0
  203. data/test/html/test_document.rb +619 -0
  204. data/test/html/test_document_encoding.rb +148 -0
  205. data/test/html/test_document_fragment.rb +261 -0
  206. data/test/html/test_element_description.rb +105 -0
  207. data/test/html/test_named_characters.rb +14 -0
  208. data/test/html/test_node.rb +196 -0
  209. data/test/html/test_node_encoding.rb +27 -0
  210. data/test/namespaces/test_additional_namespaces_in_builder_doc.rb +14 -0
  211. data/test/namespaces/test_namespaces_in_builder_doc.rb +75 -0
  212. data/test/namespaces/test_namespaces_in_cloned_doc.rb +31 -0
  213. data/test/namespaces/test_namespaces_in_created_doc.rb +75 -0
  214. data/test/namespaces/test_namespaces_in_parsed_doc.rb +66 -0
  215. data/test/test_convert_xpath.rb +135 -0
  216. data/test/test_css_cache.rb +45 -0
  217. data/test/test_encoding_handler.rb +46 -0
  218. data/test/test_memory_leak.rb +156 -0
  219. data/test/test_nokogiri.rb +138 -0
  220. data/test/test_reader.rb +558 -0
  221. data/test/test_soap4r_sax.rb +52 -0
  222. data/test/test_xslt_transforms.rb +279 -0
  223. data/test/xml/node/test_save_options.rb +28 -0
  224. data/test/xml/node/test_subclass.rb +44 -0
  225. data/test/xml/sax/test_parser.rb +382 -0
  226. data/test/xml/sax/test_parser_context.rb +115 -0
  227. data/test/xml/sax/test_push_parser.rb +157 -0
  228. data/test/xml/test_attr.rb +64 -0
  229. data/test/xml/test_attribute_decl.rb +86 -0
  230. data/test/xml/test_builder.rb +315 -0
  231. data/test/xml/test_c14n.rb +161 -0
  232. data/test/xml/test_cdata.rb +48 -0
  233. data/test/xml/test_comment.rb +29 -0
  234. data/test/xml/test_document.rb +934 -0
  235. data/test/xml/test_document_encoding.rb +28 -0
  236. data/test/xml/test_document_fragment.rb +228 -0
  237. data/test/xml/test_dtd.rb +187 -0
  238. data/test/xml/test_dtd_encoding.rb +33 -0
  239. data/test/xml/test_element_content.rb +56 -0
  240. data/test/xml/test_element_decl.rb +73 -0
  241. data/test/xml/test_entity_decl.rb +122 -0
  242. data/test/xml/test_entity_reference.rb +245 -0
  243. data/test/xml/test_namespace.rb +95 -0
  244. data/test/xml/test_node.rb +1155 -0
  245. data/test/xml/test_node_attributes.rb +113 -0
  246. data/test/xml/test_node_encoding.rb +107 -0
  247. data/test/xml/test_node_inheritance.rb +32 -0
  248. data/test/xml/test_node_reparenting.rb +374 -0
  249. data/test/xml/test_node_set.rb +755 -0
  250. data/test/xml/test_parse_options.rb +64 -0
  251. data/test/xml/test_processing_instruction.rb +30 -0
  252. data/test/xml/test_reader_encoding.rb +142 -0
  253. data/test/xml/test_relax_ng.rb +60 -0
  254. data/test/xml/test_schema.rb +129 -0
  255. data/test/xml/test_syntax_error.rb +12 -0
  256. data/test/xml/test_text.rb +45 -0
  257. data/test/xml/test_unparented_node.rb +422 -0
  258. data/test/xml/test_xinclude.rb +83 -0
  259. data/test/xml/test_xpath.rb +376 -0
  260. data/test/xslt/test_custom_functions.rb +133 -0
  261. data/test/xslt/test_exception_handling.rb +37 -0
  262. data/test_all +81 -0
  263. metadata +601 -0
@@ -0,0 +1,880 @@
1
+ === 1.6.2 / unreleased
2
+
3
+ * Features
4
+
5
+ * (MRI) Alias CP932 to Windows-31J if iconv does not support Windows-31J.
6
+ * (MRI) Nokogiri now links packaged libraries statically. To
7
+ disable static linking, pass --disable-static to extconf.rb. #923
8
+ * (MRI) Nokogiri automatically deletes directories of packaged
9
+ libraries only used during build. To keep them for debugging
10
+ purposes, pass --disable-clean to extconf.rb. #952
11
+ * (MRI) Nokogiri now builds libxml2 properly with iconv support on
12
+ platforms where libiconv is installed outside the system default
13
+ directories, such as FreeBSD.
14
+ * Add support for an-b in nth selectors. #886 (Thanks, Magnus Bergmark!)
15
+ * Add support for bare and multiple :not() functions in selectors. #887
16
+ (Thanks, Magnus Bergmark!)
17
+ * (MRI) Add an extconf.rb option --use-system-libraries, alternative to
18
+ setting the environment variable NOKOGIRI_USE_SYSTEM_LIBRARIES.
19
+ * (MRI) Update packaged libraries: libxslt to 1.1.28, zlib to 1.2.8,
20
+ and libiconv to 1.14, respectively.
21
+ * Nokogiri::HTML::Document#title= and #meta_encoding= now always add
22
+ an element if not present, trying hard to find the best place to
23
+ put it.
24
+ * Nokogiri::XML::DTD#html_dtd? and #html5_dtd? are added.
25
+ * Nokogiri::XML::Node#prepend_child is added. #664
26
+ * Nokogiri::XML::SAX::ParserContext#recovery is added. #453
27
+ * Fix documentation for XML::Node#namespace. #803 #802 (Thanks, Hoylen Sue)
28
+ * Allow Nokogiri::XML::Node#parse from unparented non-element nodes. #407
29
+
30
+ * Bugfixes
31
+
32
+ * Ensure :only-child pseudo class works within :not pseudo class. #858
33
+ (Thanks, Yamagishi Kazutoshi!)
34
+ * Don't call pkg_config when using bundled libraries in extconf.rb
35
+ #931 (Thanks, Shota Fukumori!)
36
+ * Nokogiri.parse() does not mistake a non-HTML document like a RSS
37
+ document as HTML document. #932 (Thanks, Yamagishi Kazutoshi!)
38
+ * (JRuby) XSD validation crashes in Java version. #373
39
+ * (JRuby) Document already has a root node error while using Builder. #646
40
+ * (JRuby) c14n tests are all passing on JRuby. #226
41
+ * Parsing empty documents raise SyntaxError in strict mode. #1005
42
+ * (JRuby) Make xpath faster by caching the xpath context. #741
43
+ * (JRuby) XML SAX push parser leaks memory on JRuby, but not on MRI. #998
44
+
45
+
46
+ === 1.6.1 / 2013-12-14
47
+
48
+ * Bugfixes
49
+
50
+ * (JRuby) Fix out of memory bug when certain invalid documents are parsed.
51
+ * (JRuby) Fix regression of billion-laughs vulnerability. #586
52
+
53
+
54
+ === 1.6.0 / 2013-06-08
55
+
56
+ This release was based on v1.5.10 and 1.6.0.rc1, and contains changes
57
+ mentioned in both.
58
+
59
+ * Deprecations
60
+
61
+ * Remove pre 1.9 monitoring from Travis.
62
+
63
+
64
+ === 1.6.0.rc1 / 2013-04-14
65
+
66
+ This release was based on v1.5.9, and so does not contain any fixes
67
+ mentioned in the notes for v1.5.10.
68
+
69
+ * Notes
70
+
71
+ * mini_portile is now a runtime dependency
72
+ * Ruby 1.9.2 and higher now required
73
+
74
+
75
+ * Features
76
+
77
+ * (MRI) Source code for libxml 2.8.0 and libxslt 1.2.26 is packaged
78
+ with the gem. These libraries are compiled at gem install time
79
+ unless the environment variable NOKOGIRI_USE_SYSTEM_LIBRARIES is
80
+ set. VERSION_INFO (also `nokogiri -v`) exposes whether libxml was
81
+ compiled from packaged source, or the system library was used.
82
+ * (Windows) libxml upgraded to 2.8.0
83
+
84
+
85
+ * Deprecations
86
+
87
+ * Support for Ruby 1.8.7 and prior has been dropped
88
+
89
+
90
+ === 1.5.11 / 2013-12-14
91
+
92
+ * Bugfixes
93
+
94
+ * (JRuby) Fix out of memory bug when certain invalid documents are parsed.
95
+ * (JRuby) Fix regression of billion-laughs vulnerability. #586
96
+
97
+
98
+ === 1.5.10 / 2013-06-07
99
+
100
+ * Bugfixes
101
+
102
+ * (JRuby) Fix "null document" error when parsing an empty IO in jruby 1.7.3. #883
103
+ * (JRuby) Fix schema validation when XSD has DOCTYPE set to DTD. #912 (Thanks, Patrick Cheng!)
104
+ * (MRI) Fix segfault when there is no default subelement for an HTML node. #917
105
+
106
+
107
+ * Notes
108
+
109
+ * Use rb_ary_entry instead of RARRAY_PTR (you know, for Rubinius). #877 (Thanks, Dirkjan Bussink!)
110
+ * Fix TypeError when running tests. #900 (Thanks, Cédric Boutillier!)
111
+
112
+
113
+ === 1.5.9 / 2013-03-21
114
+
115
+ * Bugfixes
116
+
117
+ * Ensure that prefixed attributes are properly namespaced when reparented. #869
118
+ * Fix for inconsistent namespaced attribute access for SVG nested in HTML. #861
119
+ * (MRI) Fixed a memory leak in fragment parsing if nodes are not all subsequently reparented. #856
120
+
121
+
122
+ === 1.5.8 / 2013-03-19
123
+
124
+ * Bugfixes
125
+
126
+ * (JRuby) Fix EmptyStackException thrown by elements with xlink:href attributes and no base_uri #534, #805. (Thanks, Patrick Quinn and Brian Hoffman!)
127
+ * Fixes duplicate attributes issue introduced in 1.5.7. #865
128
+ * Allow use of a prefixed namespace on a root node using Nokogiri::XML::Builder #868
129
+
130
+
131
+ === 1.5.7 / 2013-03-18
132
+
133
+ * Features
134
+
135
+ * Windows support for Ruby 2.0.
136
+
137
+
138
+ * Bugfixes
139
+
140
+ * SAX::Parser.parse_io throw an error when used with lower case encoding. #828
141
+ * (JRuby) Java Nokogiri is finally green (passes all tests) under 1.8 and 1.9 mode. High five everyone. #798, #705
142
+ * (JRuby) Nokogiri::XML::Reader broken (as a pull parser) on jruby - reads the whole XML document. #831
143
+ * (JRuby) JRuby hangs parsing "&". #837
144
+ * (JRuby) JRuby NPE parsing an invalid XML instruction. #838
145
+ * (JRuby) Node#content= incompatibility. #839
146
+ * (JRuby) to_xhtml doesn't print the last slash for self-closing tags in JRuby. #834
147
+ * (JRuby) Adding an EntityReference after a Text node mangles the entity in JRuby. #835
148
+ * (JRuby) JRuby version inconsistency: nil for empty attributes. #818
149
+ * CSS queries for classes (e.g., ".foo") now treat all whitespace identically. #854
150
+ * Namespace behavior cleaned up and made consistent between JRuby and MRI. #846, #801 (Thanks, Michael Klein!)
151
+ * (MRI) SAX parser handles empty processing instructions. #845
152
+
153
+
154
+ === 1.5.6 / 2012-12-19
155
+
156
+ * Features
157
+
158
+ * Improved performance of XML::Document#collect_namespaces. #761 (Thanks, Juergen Mangler!)
159
+ * New callback SAX::Document#processing_instruction (Thanks, Kitaiti Makoto!)
160
+ * Node#native_content= allows setting unescaped node contant. #768
161
+ * XPath lookup with namespaces supports symbol keys. #729 (Thanks, Ben Langfeld.)
162
+ * XML::Node#[]= stringifies values. #729 (Thanks, Ben Langfeld.)
163
+ * bin/nokogiri will process a document from $stdin
164
+ * bin/nokogiri -e will execute a program from the command line
165
+ * (JRuby) bin/nokogiri --version will print the Xerces and NekoHTML versions.
166
+
167
+
168
+ * Bugfixes
169
+
170
+ * Nokogiri now detects XSLT transform errors. #731 (Thanks, Justin Fitzsimmons!)
171
+ * Don't throw an Error when trying to replace top-level text node in DocumentFragment. #775
172
+ * Raise an ArgumentError if an invalid encoding is passed to the SAX parser. #756 (Thanks, Bradley Schaefer!)
173
+ * Prefixed element inconsistency between CRuby and JRuby. #712
174
+ * (JRuby) space prior to xml preamble causes nokogiri to fail parsing. (fixed along with #748) #790
175
+ * (JRuby) Fixed the bug Nokogiri::XML::Node#content inconsistency between Java and C. #794, #797
176
+ * (JRuby) raises INVALID_CHARACTER_ERR exception when EntityReference name starts with '#'. #719
177
+ * (JRuby) doesn't coerce namespaces out of strings on a direct subclass of Node. #715
178
+ * (JRuby) Node#content now renders newlines properly. #737 (Thanks, Piotr Szmielew!)
179
+ * (JRuby) Unknown namespace are ignore when the recover option is used. #748
180
+ * (JRuby) XPath queries for namespaces should not throw exceptions when called twice in a row. #764
181
+ * (JRuby) More consistent (with libxml2) whitespace formatting when emitting XML. #771
182
+ * (JRuby) namespaced attributes broken when appending raw xml to builder. #770
183
+ * (JRuby) Nokogiri::XML::Document#wrap raises undefined method `length' for nil:NilClass when trying to << to a node. #781
184
+ * (JRuby) Fixed "bad file descriptor" bug when closing open file descriptors. #495
185
+ * (JRuby) JRuby/CRuby incompatibility for attribute decorators. #785
186
+ * (JRuby) Issues parsing valid XML with no internal subset in the DTD. #547, #811
187
+ * (JRuby) Issues parsing valid node content when it contains colons. #728
188
+ * (JRuby) Correctly parse the doc type of html documents. #733
189
+ * (JRuby) Include dtd in the xml output when a builder is used with create_internal_subset. #751
190
+ * (JRuby) builder requires textwrappers for valid utf8 in jruby, not in mri. #784
191
+
192
+
193
+ === 1.5.5 / 2012-06-24
194
+
195
+ * Features
196
+
197
+ * Much-improved support for JRuby in 1.9 mode! Yay!
198
+
199
+ * Bugfixes
200
+
201
+ * Regression in JRuby Nokogiri add_previous_sibling (1.5.0 -> 1.5.1) #691 (Thanks, John Shahid!)
202
+ * JRuby unable to create HTML doc if URL arg provided #674 (Thanks, John Shahid!)
203
+ * JRuby raises NullPointerException when given HTML document is nil or empty string. #699
204
+ * JRuby 1.9 error, uncaught throw 'encoding_found', has been fixed. #673
205
+ * Invalid encoding returned in JRuby with US-ASCII. #583
206
+ * XmlSaxPushParser raises IndexOutOfBoundsException when over 512 characters are given. #567, #615
207
+ * When xpath evaluation returns empty NodeSet, decorating NodeSet's base document raises exception. #514
208
+ * JRuby raises exception when xpath with namespace is specified. pull request #681 (Thanks, Piotr Szmielew)
209
+ * JRuby renders nodes without their namespace when subclassing Node. #695
210
+ * JRuby raises NAMESPACE_ERR (org.w3c.dom.DOMException) while instantiating RDF::RDFXML::Writer. #683
211
+ * JRuby is not able to use namespaces in xpath. #493
212
+ * JRuby's Entity resolving should be consistent with C-Nokogiri #704, #647, #703
213
+
214
+
215
+ === 1.5.4 / 2012-06-12
216
+
217
+ * Features
218
+
219
+ * The "nokogiri" script now has more verbose output when passed the `--rng` option. #675 (Thanks, Dan Radez!)
220
+ * Build support on hardened Debian systems that use `-Werror=format-security`. #680.
221
+ * Better build support for systems with pkg-config. #584
222
+ * Better build support for systems with multiple iconv installations.
223
+
224
+ * Bugfixes
225
+
226
+ * Segmentation fault when creating a comment node for a DocumentFragment. #677, #678.
227
+ * Treat '.' as xpath in at() and search(). #690
228
+
229
+ * (MRI, Security) Default parse options for XML documents were
230
+ changed to not make network connections during document parsing,
231
+ to avoid XXE vulnerability. #693
232
+
233
+ To re-enable this behavior, the configuration method `nononet` may
234
+ be called, like this:
235
+
236
+ Nokogiri::XML::Document.parse(xml) { |config| config.nononet }
237
+
238
+ Insert your own joke about double-negatives here.
239
+
240
+
241
+ === 1.5.3 / 2012-06-01
242
+
243
+ * Features
244
+
245
+ * Support for "prefixless" CSS selectors ~, > and + like jQuery
246
+ supports. #621, #623. (Thanks, David Lee!)
247
+ * Attempting to improve installation on homebrew 0.9 (with regards
248
+ to iconv). Isn't package management convenient?
249
+
250
+ * Bugfixes
251
+
252
+ * Custom xpath functions with empty nodeset arguments cause a
253
+ segfault. #634.
254
+ * Nokogiri::XML::Node#css now works for XML documents with default
255
+ namespaces when the rule contains attribute selector without
256
+ namespace.
257
+ * Fixed marshalling bugs around how arguments are passed to (and
258
+ returned from) XSLT custom xpath functions. #640.
259
+ * Nokogiri::XML::Reader#outer_xml is broken in JRuby #617
260
+ * Nokogiri::XML::Attribute on JRuby returns a nil namespace #647
261
+ * Nokogiri::XML::Node#namespace= cannot set a namespace without a
262
+ prefix on JRuby #648
263
+ * (JRuby) 1.9 mode causes dead lock while running rake #571
264
+ * HTML::Document#meta_encoding does not raise exception on docs with
265
+ malformed content-type. #655
266
+ * Fixing segfault related to unsupported encodings in in-context
267
+ parsing on 1.8.7. #643
268
+ * (JRuby) Concurrency issue in XPath parsing. #682
269
+
270
+
271
+ === 1.5.2 / 2012-03-09
272
+
273
+ Repackaging of 1.5.1 with a gemspec that is compatible with older Rubies. #631, #632.
274
+
275
+
276
+ === 1.5.1 / 2012-03-09
277
+
278
+ * Features
279
+
280
+ * XML::Builder#comment allows creation of comment nodes.
281
+ * CSS searches now support namespaced attributes. #593
282
+ * Java integration feature is added. Now, XML::Document.wrap
283
+ and XML::Document#to_java methods are available.
284
+ * RelaxNG validator support in the `nokogiri` cli utility. #591 (thanks, Dan Radez!)
285
+
286
+ * Bugfixes
287
+
288
+ * Fix many memory leaks and segfault opportunities. Thanks, Tim Elliott!
289
+ * extconf searches homebrew paths if homebrew is installed.
290
+ * Inconsistent behavior of Nokogiri 1.5.0 Java #620
291
+ * Inheriting from Nokogiri::XML::Node on JRuby (1.6.4/5) fails #560
292
+ * XML::Attr nodes are not allowed to be added as node children, so an
293
+ exception is raised. #558
294
+ * No longer defensively "pickle" adjacent text nodes on
295
+ Node#add_next_sibling and Node#add_previous_sibling calls. #595.
296
+ * Java version inconsistency: it returns nil for empty attributes #589
297
+ * to_xhtml incorrectly generates <p /></p> when tag is empty #557
298
+ * Document#add_child now accepts a Node, NodeSet, DocumentFragment,
299
+ or String. #546.
300
+ * Document#create_element now recognizes namespaces containing
301
+ non-word characters (like "SOAP-ENV"). This is mostly relevant to
302
+ users of Builder, which calls Document#create_element for nearly
303
+ everything. #531.
304
+ * File encoding broken in 1.5.0 / jruby / windows #529
305
+ * Java version does not return namespace defs as attrs for ::HTML #542
306
+ * Bad file descriptor with Nokogiri 1.5.0 #495
307
+ * remove_namespace! doesn't work in pure java version #492
308
+ * The Nokogiri Java native build throws a null pointer exception
309
+ when ActiveSupport's .blank? method is called directly on a parsed
310
+ object. #489
311
+ * 1.5.0 Not using correct character encoding #488
312
+ * Raw XML string in XML Builder broken on JRuby #486
313
+ * Nokogiri 1.5.0 XML generation broken on JRuby #484
314
+ * Do not allow multiple root nodes. #550
315
+ * Fixes for custom XPath functions. #605, #606 (thanks, Juan Wajnerman!)
316
+ * Node#to_xml does not override :save_with if it is provided. #505
317
+ * Node#set is a private method (JRuby). #564 (thanks, Nick Sieger!)
318
+ * C14n cleanup and Node#canonicalize (thanks, Ivan Pirlik!) #563
319
+
320
+
321
+ === 1.5.0 / 2011-07-01
322
+
323
+ * Notes
324
+
325
+ * See changelog from 1.4.7
326
+
327
+ * Features
328
+
329
+ * extracted sets of Node::SaveOptions into Node::SaveOptions::DEFAULT_{X,H,XH}TML (refactor)
330
+
331
+ * Bugfixes
332
+
333
+ * default output of XML on JRuby is no longer formatted due to
334
+ inconsistent whitespace handling. #415
335
+ * (JRuby) making empty NodeSets with null `nodes` member safe to operate on. #443
336
+ * Fix a bug in advanced encoding detection that leads to partially
337
+ duplicated document when parsing an HTML file with unknown
338
+ encoding.
339
+ * Add support for <meta charset="...">.
340
+
341
+
342
+ === 1.5.0 beta3 / 2010/12/02
343
+
344
+ * Notes
345
+
346
+ * JRuby performance tuning
347
+ * See changelog from 1.4.4
348
+
349
+ * Bugfixes
350
+
351
+ * Node#inner_text no longer returns nil. (JRuby) #264
352
+
353
+
354
+ === 1.5.0 beta2 / 2010/07/30
355
+
356
+ * Notes
357
+
358
+ * See changelog from 1.4.3
359
+
360
+
361
+ === 1.5.0 beta1 / 2010/05/22
362
+
363
+ * Notes
364
+
365
+ * JRuby support is provided by a new pure-java backend.
366
+
367
+ * Deprecations
368
+
369
+ * Ruby 1.8.6 is deprecated. Nokogiri will install, but official support is ended.
370
+ * LibXML 2.6.16 and earlier are deprecated. Nokogiri will refuse to install.
371
+ * FFI support is removed.
372
+
373
+
374
+ === 1.4.7 / 2011-07-01
375
+
376
+ * Bugfixes
377
+
378
+ * Fix a bug in advanced encoding detection that leads to partially
379
+ duplicated document when parsing an HTML file with unknown
380
+ encoding. Thanks, Timothy Elliott (@ender672)! #478
381
+
382
+
383
+ === 1.4.6 / 2011-06-19
384
+
385
+ * Notes
386
+
387
+ * This version is functionally identical to 1.4.5.
388
+ * Ruby 1.8.6 support has been restored.
389
+
390
+
391
+ === 1.4.5 / 2011-05-19
392
+
393
+ * New Features
394
+
395
+ * Nokogiri::HTML::Document#title accessor gets and sets the document title.
396
+ * extracted sets of Node::SaveOptions into Node::SaveOptions::DEFAULT_{X,H,XH}TML (refactor)
397
+ * Raise an exception if a string is passed to Nokogiri::XML::Schema#validate. #406
398
+
399
+ * Bugfixes
400
+
401
+ * Node#serialize-and-friends now accepts a SaveOption object as the, erm, save object.
402
+ * Nokogiri::CSS::Parser has-a Nokogiri::CSS::Tokenizer
403
+ * (JRUBY+FFI only) Weak references are now threadsafe. #355
404
+ * Make direct start_element() callback (currently used for
405
+ HTML::SAX::Parser) pass attributes in assoc array, just as
406
+ emulated start_element() callback does. rel. #356
407
+ * HTML::SAX::Parser should call back a block given to parse*() if any, just as XML::SAX::Parser does.
408
+ * Add further encoding detection to HTML parser that libxml2 does not do.
409
+ * Document#remove_namespaces! now handles attributes with namespaces. #396
410
+ * XSLT::Stylesheet#transform no longer segfaults when handed a non-XML::Document. #452
411
+ * XML::Reader no longer segfaults when under GC pressure. #439
412
+
413
+
414
+ === 1.4.4 / 2010-11-15
415
+
416
+ * New Features
417
+
418
+ * XML::Node#children= sets the node's inner html (much like #inner_html=), but returns the reparent node(s).
419
+ * XSLT supports function extensions. #336
420
+ * XPath bind parameter substitution. #329
421
+ * XML::Reader node type constants. #369
422
+ * SAX Parser context provides line and column information
423
+
424
+ * Bugfixes
425
+
426
+ * XML::DTD#attributes returns an empty hash instead of nil when there are no attributes.
427
+ * XML::DTD#{keys,each} now work as expected. #324
428
+ * {XML,HTML}::DocumentFragment.{new,parse} no longer strip leading and trailing whitespace. #319
429
+ * XML::Node#{add_child,add_previous_sibling,add_next_sibling,replace} return a NodeSet when passed a string.
430
+ * Unclosed tags parsed more robustly in fragments. #315
431
+ * XML::Node#{replace,add_previous_sibling,add_next_sibling} edge cases fixed related to libxml's text node merging. #308
432
+ * Fixed a segfault when GC occurs during xpath handler argument marshalling. #345
433
+ * Added hack to Slop decorator to work with previously defined methods. #330
434
+ * Fix a memory leak when duplicating child nodes. #353
435
+ * Fixed off-by-one bug with nth-last-{child,of-type} CSS selectors when NOT using an+b notation. #354
436
+ * Fixed passing of non-namespace attributes to SAX::Document#start_element. #356
437
+ * Workaround for libxml2 in-context parsing bug. #362
438
+ * Fixed NodeSet#wrap on nodes within a fragment. #331
439
+
440
+
441
+ === 1.4.3 / 2010/07/28
442
+
443
+ * New Features
444
+
445
+ * XML::Reader#empty_element? returns true for empty elements. #262
446
+ * Node#remove_namespaces! now removes namespace *declarations* as well. #294
447
+ * NodeSet#at_xpath, NodeSet#at_css and NodeSet#> do what the corresponding
448
+ methods of Node do.
449
+
450
+ * Bugfixes
451
+
452
+ * XML::NodeSet#{include?,delete,push} accept an XML::Namespace
453
+ * XML::Document#parse added for parsing in the context of a document
454
+ * XML::DocumentFragment#inner_html= works with contextual parsing! #298, #281
455
+ * lib/nokogiri/css/parser.y Combined CSS functions + pseudo selectors fixed
456
+ * Reparenting text nodes is safe, even when the operation frees adjacent merged nodes. #283
457
+ * Fixed libxml2 versionitis issue with xmlFirstElementChild et al. #303
458
+ * XML::Attr#add_namespace now works as expected. #252
459
+ * HTML::DocumentFragment uses the string's encoding. #305
460
+ * Fix the CSS3 selector translation rule for the general sibling combinator
461
+ (a.k.a. preceding selector) that incorrectly converted "E ~ F G" to
462
+ "//F//G[preceding-sibling::E]".
463
+
464
+
465
+ === 1.4.2 / 2010/05/22
466
+
467
+ * New Features
468
+
469
+ * XML::Node#parse will parse XML or HTML fragments with respect to the
470
+ context node.
471
+ * XML::Node#namespaces returns all namespaces defined in the node and all
472
+ ancestor nodes
473
+ (previously did not return ancestors' namespace definitions).
474
+ * Added Enumerable to XML::Node
475
+ * Nokogiri::XML::Schema#validate now uses xmlSchemaValidateFile if a
476
+ filename is passed, which is faster and more memory-efficient. GH #219
477
+ * XML::Document#create_entity will create new EntityDecl objects. GH #174
478
+ * JRuby FFI implementation no longer uses ObjectSpace._id2ref,
479
+ instead using Charles Nutter's rocking Weakling gem.
480
+ * Nokogiri::XML::Node#first_element_child fetch the first child node that is
481
+ an ELEMENT node.
482
+ * Nokogiri::XML::Node#last_element_child fetch the last child node that is
483
+ an ELEMENT node.
484
+ * Nokogiri::XML::Node#elements fetch all children nodes that are ELEMENT
485
+ nodes.
486
+ * Nokogiri::XML::Node#add_child, #add_previous_sibling, #before,
487
+ #add_next_sibling, #after, #inner_html, #swap and #replace all now
488
+ accept a Node, DocumentFragment, NodeSet, or a string containing
489
+ markup.
490
+ * Node#fragment? indicates whether a node is a DocumentFragment.
491
+
492
+ * Bugfixes
493
+
494
+ * XML::NodeSet is now always decorated (if the document has decorators).
495
+ GH #198
496
+ * XML::NodeSet#slice gracefully handles offset+length larger than the set
497
+ length. GH #200
498
+ * XML::Node#content= safely unlinks previous content. GH #203
499
+ * XML::Node#namespace= takes nil as a parameter
500
+ * XML::Node#xpath returns things other than NodeSet objects. GH #208
501
+ * XSLT::StyleSheet#transform accepts hashes for parameters. GH #223
502
+ * Psuedo selectors inside not() work. GH #205
503
+ * XML::Builder doesn't break when nodes are unlinked.
504
+ Thanks to vihai! GH #228
505
+ * Encoding can be forced on the SAX parser. Thanks Eugene Pimenov! GH #204
506
+ * XML::DocumentFragment uses XML::Node#parse to determine children.
507
+ * Fixed a memory leak in xml reader. Thanks sdor! GH #244
508
+ * Node#replace returns the new child node as claimed in the
509
+ RDoc. Previously returned +self+.
510
+
511
+ * Notes
512
+
513
+ * The Windows gems now bundle DLLs for libxml 2.7.6 and libxslt
514
+ 1.1.26. Prior to this release, libxml 2.7.3 and libxslt 1.1.24
515
+ were bundled.
516
+
517
+
518
+ === 1.4.1 / 2009/12/10
519
+
520
+ * New Features
521
+
522
+ * Added Nokogiri::LIBXML_ICONV_ENABLED
523
+ * Alias Node#[] to Node#attr
524
+ * XML::Node#next_element added
525
+ * XML::Node#> added for searching a nodes immediate children
526
+ * XML::NodeSet#reverse added
527
+ * Added fragment support to Node#add_child, Node#add_next_sibling,
528
+ Node#add_previous_sibling, and Node#replace.
529
+ * XML::Node#previous_element implemented
530
+ * Rubinius support
531
+ * Ths CSS selector engine now supports :has()
532
+ * XML::NodeSet#filter() was added
533
+ * XML::Node.next= and .previous= are aliases for add_next_sibling and add_previous_sibling. GH #183
534
+
535
+ * Bugfixes
536
+
537
+ * XML fragments with namespaces do not raise an exception (regression in 1.4.0)
538
+ * Node#matches? works in nodes contained by a DocumentFragment. GH #158
539
+ * Document should not define add_namespace() method. GH #169
540
+ * XPath queries returning namespace declarations do not segfault.
541
+ * Node#replace works with nodes from different documents. GH #162
542
+ * Adding XML::Document#collect_namespaces
543
+ * Fixed bugs in the SOAP4R adapter
544
+ * Fixed bug in XML::Node#next_element for certain edge cases
545
+ * Fixed load path issue with JRuby under Windows. GH #160.
546
+ * XSLT#apply_to will honor the "output method". Thanks richardlehane!
547
+ * Fragments containing leading text nodes with newlines now parse properly. GH #178.
548
+
549
+
550
+ === 1.4.0 / 2009/10/30
551
+
552
+ * Happy Birthday!
553
+
554
+ * New Features
555
+
556
+ * Node#at_xpath returns the first element of the NodeSet matching the XPath
557
+ expression.
558
+ * Node#at_css returns the first element of the NodeSet matching the CSS
559
+ selector.
560
+ * NodeSet#| for unions GH #119 (Thanks Serabe!)
561
+ * NodeSet#inspect makes prettier output
562
+ * Node#inspect implemented for more rubyish document inspecting
563
+ * Added XML::DTD#external_id
564
+ * Added XML::DTD#system_id
565
+ * Added XML::ElementContent for DTD Element content validity
566
+ * Better namespace declaration support in Nokogiri::XML::Builder
567
+ * Added XML::Node#external_subset
568
+ * Added XML::Node#create_external_subset
569
+ * Added XML::Node#create_internal_subset
570
+ * XML Builder can append raw strings (GH #141, patch from dudleyf)
571
+ * XML::SAX::ParserContext added
572
+ * XML::Document#remove_namespaces! for the namespace-impaired
573
+
574
+ * Bugfixes
575
+
576
+ * returns nil when HTML documents do not declare a meta encoding tag. GH #115
577
+ * Uses RbConfig::CONFIG['host_os'] to adjust ENV['PATH'] GH #113
578
+ * NodeSet#search is more efficient GH #119 (Thanks Serabe!)
579
+ * NodeSet#xpath handles custom xpath functions
580
+ * Fixing a SEGV when XML::Reader gets attributes for current node
581
+ * Node#inner_html takes the same arguments as Node#to_html GH #117
582
+ * DocumentFragment#css delegates to it's child nodes GH #123
583
+ * NodeSet#[] works with slices larger than NodeSet#length GH #131
584
+ * Reparented nodes maintain their namespace. GH #134
585
+ * Fixed SEGV when adding an XML::Document to NodeSet
586
+ * XML::SyntaxError can be duplicated. GH #148
587
+
588
+ * Deprecations
589
+
590
+ * Hpricot compatibility layer removed
591
+
592
+
593
+ === 1.3.3 / 2009/07/26
594
+
595
+ * New Features
596
+
597
+ * NodeSet#children returns all children of all nodes
598
+
599
+ * Bugfixes
600
+
601
+ * Override libxml-ruby's global error handler
602
+ * ParseOption#strict fixed
603
+ * Fixed a segfault when sending an empty string to Node#inner_html= GH #88
604
+ * String encoding is now set to UTF-8 in Ruby 1.9
605
+ * Fixed a segfault when moving root nodes between documents. GH #91
606
+ * Fixed an O(n) penalty on node creation. GH #101
607
+ * Allowing XML documents to be output as HTML documents
608
+
609
+ * Deprecations
610
+
611
+ * Hpricot compatibility layer will be removed in 1.4.0
612
+
613
+
614
+ === 1.3.2 / 2009-06-22
615
+
616
+ * New Features
617
+
618
+ * Nokogiri::XML::DTD#validate will validate your document
619
+
620
+ * Bugfixes
621
+
622
+ * Nokogiri::XML::NodeSet#search will search top level nodes. GH #73
623
+ * Removed namespace related methods from Nokogiri::XML::Document
624
+ * Fixed a segfault when a namespace was added twice
625
+ * Made nokogiri work with Snow Leopard GH #79
626
+ * Mailing list has moved to: http://groups.google.com/group/nokogiri-talk
627
+ * HTML fragments now correctly handle comments and CDATA blocks. GH #78
628
+ * Nokogiri::XML::Document#clone is now an alias of dup
629
+
630
+ * Deprecations
631
+
632
+ * Nokogiri::XML::SAX::Document#start_element_ns is deprecated, please switch
633
+ to Nokogiri::XML::SAX::Document#start_element_namespace
634
+ * Nokogiri::XML::SAX::Document#end_element_ns is deprecated, please switch
635
+ to Nokogiri::XML::SAX::Document#end_element_namespace
636
+
637
+
638
+ === 1.3.1 / 2009-06-07
639
+
640
+ * Bugfixes
641
+
642
+ * extconf.rb checks for optional RelaxNG and Schema functions
643
+ * Namespace nodes are added to the Document node cache
644
+
645
+
646
+ === 1.3.0 / 2009-05-30
647
+
648
+ * New Features
649
+
650
+ * Builder changes scope based on block arity
651
+ * Builder supports methods ending in underscore similar to tagz
652
+ * Nokogiri::XML::Node#<=> compares nodes based on Document position
653
+ * Nokogiri::XML::Node#matches? returns true if Node can be found with
654
+ given selector.
655
+ * Nokogiri::XML::Node#ancestors now returns an Nokogiri::XML::NodeSet
656
+ * Nokogiri::XML::Node#ancestors will match parents against optional selector
657
+ * Nokogiri::HTML::Document#meta_encoding for getting the meta encoding
658
+ * Nokogiri::HTML::Document#meta_encoding= for setting the meta encoding
659
+ * Nokogiri::XML::Document#encoding= to set the document encoding
660
+ * Nokogiri::XML::Schema for validating documents against XSD schema
661
+ * Nokogiri::XML::RelaxNG for validating documents against RelaxNG schema
662
+ * Nokogiri::HTML::ElementDescription for fetching HTML element descriptions
663
+ * Nokogiri::XML::Node#description to fetch the node description
664
+ * Nokogiri::XML::Node#accept implements Visitor pattern
665
+ * bin/nokogiri for easily examining documents (Thanks Yutaka HARA!)
666
+ * Nokogiri::XML::NodeSet now supports more Array and Enumerable operators:
667
+ index, delete, slice, - (difference), + (concatenation), & (intersection),
668
+ push, pop, shift, ==
669
+ * Nokogiri.XML, Nokogiri.HTML take blocks that receive
670
+ Nokogiri::XML::ParseOptions objects
671
+ * Nokogiri::XML::Node#namespace returns a Nokogiri::XML::Namespace
672
+ * Nokogiri::XML::Node#namespace= for setting a node's namespace
673
+ * Nokogiri::XML::DocumentFragment and Nokogiri::HTML::DocumentFragment
674
+ have a sensible API and a more robust implementation.
675
+ * JRuby 1.3.0 support via FFI.
676
+
677
+ * Bugfixes
678
+
679
+ * Fixed a problem with nil passed to CDATA constructor
680
+ * Fragment method deals with regular expression characters
681
+ (Thanks Joel!) LH #73
682
+ * Fixing builder scope issues LH #61, LH #74, LH #70
683
+ * Fixed a problem when adding a child could remove the child namespace LH#78
684
+ * Fixed bug with unlinking a node then reparenting it. (GH#22)
685
+ * Fixed failure to catch errors during XSLT parsing (GH#32)
686
+ * Fixed a bug with attribute conditions in CSS selectors (GH#36)
687
+ * Fixed intolerance of HTML attributes without values in Node#before/after/inner_html=. (GH#35)
688
+
689
+
690
+ === 1.2.3 / 2009-03-22
691
+
692
+ * Bugfixes
693
+
694
+ * Fixing bug where a node is passed in to Node#new
695
+ * Namespace should be assigned on DocumentFragment creation. LH #66
696
+ * Nokogiri::XML::NodeSet#dup works GH #10
697
+ * Nokogiri::HTML returns an empty Document when given a blank string GH#11
698
+ * Adding a child will remove duplicate namespace declarations LH #67
699
+ * Builder methods take a hash as a second argument
700
+
701
+
702
+ === 1.2.2 / 2009-03-14
703
+
704
+ * New features
705
+
706
+ * Nokogiri may be used with soap4r. See XSD::XMLParser::Nokogiri
707
+ * Nokogiri::XML::Node#inner_html= to set the inner html for a node
708
+ * Nokogiri builder interface improvements
709
+ * Nokogiri::XML::Node#swap swaps html for current node (LH #50)
710
+
711
+ * Bugfixes
712
+
713
+ * Fixed a tag nesting problem in the Builder API (LH #41)
714
+ * Nokogiri::HTML.fragment will properly handle text only nodes (LH #43)
715
+ * Nokogiri::XML::Node#before will prepend text nodes (LH #44)
716
+ * Nokogiri::XML::Node#after will append text nodes
717
+ * Nokogiri::XML::Node#search automatically registers root namespaces (LH #42)
718
+ * Nokogiri::XML::NodeSet#search automatically registers namespaces
719
+ * Nokogiri::HTML::NamedCharacters delegates to libxml2
720
+ * Nokogiri::XML::Node#[] can take a symbol (LH #48)
721
+ * vasprintf for windows updated. Thanks Geoffroy Couprie!
722
+ * Nokogiri::XML::Node#[]= should not encode entities (LH #55)
723
+ * Namespaces should be copied to reparented nodes (LH #56)
724
+ * Nokogiri uses encoding set on the string for default in Ruby 1.9
725
+ * Document#dup should create a new document of the same type (LH #59)
726
+ * Document should not have a parent method (LH #64)
727
+
728
+
729
+ === 1.2.1 / 2009-02-23
730
+
731
+ * Bugfixes
732
+
733
+ * Fixed a CSS selector space bug
734
+ * Fixed Ruby 1.9 String Encoding (Thanks 角谷さん!)
735
+
736
+
737
+ === 1.2.0 / 2009-02-22
738
+
739
+ * New features
740
+
741
+ * CSS search now supports CSS3 namespace queries
742
+ * Namespaces on the root node are automatically registered
743
+ * CSS queries use the default namespace
744
+ * Nokogiri::XML::Document#encoding get encoding used for this document
745
+ * Nokogiri::XML::Document#url get the document url
746
+ * Nokogiri::XML::Node#add_namespace add a namespace to the node LH#38
747
+ * Nokogiri::XML::Node#each iterate over attribute name, value pairs
748
+ * Nokogiri::XML::Node#keys get all attribute names
749
+ * Nokogiri::XML::Node#line get the line number for a node (Thanks Dirkjan Bussink!)
750
+ * Nokogiri::XML::Node#serialize now takes an optional encoding parameter
751
+ * Nokogiri::XML::Node#to_html, to_xml, and to_xhtml take an optional encoding
752
+ * Nokogiri::XML::Node#to_str
753
+ * Nokogiri::XML::Node#to_xhtml to produce XHTML documents
754
+ * Nokogiri::XML::Node#values get all attribute values
755
+ * Nokogiri::XML::Node#write_to writes the node to an IO object with optional encoding
756
+ * Nokogiri::XML::ProcessingInstrunction.new
757
+ * Nokogiri::XML::SAX::PushParser for all your push parsing needs.
758
+
759
+ * Bugfixes
760
+
761
+ * Fixed Nokogiri::XML::Document#dup
762
+ * Fixed header detection. Thanks rubikitch!
763
+ * Fixed a problem where invalid CSS would cause the parser to hang
764
+
765
+ * Deprecations
766
+
767
+ * Nokogiri::XML::Node.new_from_str will be deprecated in 1.3.0
768
+
769
+ * API Changes
770
+
771
+ * Nokogiri::HTML.fragment now returns an XML::DocumentFragment (LH #32)
772
+
773
+
774
+ === 1.1.1
775
+
776
+ * New features
777
+
778
+ * Added XML::Node#elem?
779
+ * Added XML::Node#attribute_nodes
780
+ * Added XML::Attr
781
+ * XML::Node#delete added.
782
+ * XML::NodeSet#inner_html added.
783
+
784
+ * Bugfixes
785
+
786
+ * Not including an HTML entity for \r for HTML nodes.
787
+ * Removed CSS::SelectorHandler and XML::XPathHandler
788
+ * XML::Node#attributes returns an Attr node for the value.
789
+ * XML::NodeSet implements to_xml
790
+
791
+
792
+ === 1.1.0
793
+
794
+ * New Features
795
+
796
+ * Custom XPath functions are now supported. See Nokogiri::XML::Node#xpath
797
+ * Custom CSS pseudo classes are now supported. See Nokogiri::XML::Node#css
798
+ * Nokogiri::XML::Node#<< will add a child to the current node
799
+
800
+ * Bugfixes
801
+
802
+ * Mutex lock on CSS cache access
803
+ * Fixed build problems with GCC 3.3.5
804
+ * XML::Node#to_xml now takes an indentation argument
805
+ * XML::Node#dup takes an optional depth argument
806
+ * XML::Node#add_previous_sibling returns new sibling node.
807
+
808
+
809
+ === 1.0.7
810
+
811
+ * Bugfixes
812
+
813
+ * Fixed memory leak when using Dike
814
+ * SAX parser now parses IO streams
815
+ * Comment nodes have their own class
816
+ * Nokogiri() should delegate to Nokogiri.parse()
817
+ * Prepending rather than appending to ENV['PATH'] on windows
818
+ * Fixed a bug in complex CSS negation selectors
819
+
820
+
821
+ === 1.0.6
822
+
823
+ * 5 Bugfixes
824
+
825
+ * XPath Parser raises a SyntaxError on parse failure
826
+ * CSS Parser raises a SyntaxError on parse failure
827
+ * filter() and not() hpricot compatibility added
828
+ * CSS searches via Node#search are now always relative
829
+ * CSS to XPath conversion is now cached
830
+
831
+
832
+ === 1.0.5
833
+
834
+ * Bugfixes
835
+
836
+ * Added mailing list and ticket tracking information to the README.txt
837
+ * Sets ENV['PATH'] on windows if it doesn't exist
838
+ * Caching results of NodeSet#[] on Document
839
+
840
+
841
+ === 1.0.4
842
+
843
+ * Bugfixes
844
+
845
+ * Changed memory management from weak refs to document refs
846
+ * Plugged some memory leaks
847
+ * Builder blocks can call methods from surrounding contexts
848
+
849
+
850
+ === 1.0.3
851
+
852
+ * 5 Bugfixes
853
+
854
+ * NodeSet now implements to_ary
855
+ * XML::Document should not implement parent
856
+ * More GC Bugs fixed. (Mike is AWESOME!)
857
+ * Removed RARRAY_LEN for 1.8.5 compatibility. Thanks Shane Hanna.
858
+ * inner_html fixed. (Thanks Yehuda!)
859
+
860
+
861
+ === 1.0.2
862
+
863
+ * 1 Bugfix
864
+
865
+ * extconf.rb should not check for frex and racc
866
+
867
+
868
+ === 1.0.1
869
+
870
+ * 1 Bugfix
871
+
872
+ * Made sure extconf.rb searched libdir and prefix so that ports libxml/ruby
873
+ will link properly. Thanks lucsky!
874
+
875
+
876
+ === 1.0.0 / 2008-07-13
877
+
878
+ * 1 major enhancement
879
+
880
+ * Birthday!