nokogiri-maven 1.5.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. data/CHANGELOG.ja.rdoc +544 -0
  2. data/CHANGELOG.rdoc +532 -0
  3. data/Manifest.txt +283 -0
  4. data/README.ja.rdoc +106 -0
  5. data/README.rdoc +174 -0
  6. data/Rakefile +164 -0
  7. data/bin/nokogiri +53 -0
  8. data/ext/java/nokogiri/EncodingHandler.java +124 -0
  9. data/ext/java/nokogiri/HtmlDocument.java +119 -0
  10. data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
  11. data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
  12. data/ext/java/nokogiri/HtmlSaxParserContext.java +259 -0
  13. data/ext/java/nokogiri/NokogiriService.java +590 -0
  14. data/ext/java/nokogiri/XmlAttr.java +180 -0
  15. data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
  16. data/ext/java/nokogiri/XmlCdata.java +84 -0
  17. data/ext/java/nokogiri/XmlComment.java +86 -0
  18. data/ext/java/nokogiri/XmlDocument.java +519 -0
  19. data/ext/java/nokogiri/XmlDocumentFragment.java +223 -0
  20. data/ext/java/nokogiri/XmlDtd.java +469 -0
  21. data/ext/java/nokogiri/XmlElement.java +195 -0
  22. data/ext/java/nokogiri/XmlElementContent.java +382 -0
  23. data/ext/java/nokogiri/XmlElementDecl.java +152 -0
  24. data/ext/java/nokogiri/XmlEntityDecl.java +162 -0
  25. data/ext/java/nokogiri/XmlEntityReference.java +97 -0
  26. data/ext/java/nokogiri/XmlNamespace.java +183 -0
  27. data/ext/java/nokogiri/XmlNode.java +1378 -0
  28. data/ext/java/nokogiri/XmlNodeSet.java +267 -0
  29. data/ext/java/nokogiri/XmlProcessingInstruction.java +99 -0
  30. data/ext/java/nokogiri/XmlReader.java +408 -0
  31. data/ext/java/nokogiri/XmlRelaxng.java +144 -0
  32. data/ext/java/nokogiri/XmlSaxParserContext.java +367 -0
  33. data/ext/java/nokogiri/XmlSaxPushParser.java +184 -0
  34. data/ext/java/nokogiri/XmlSchema.java +324 -0
  35. data/ext/java/nokogiri/XmlSyntaxError.java +119 -0
  36. data/ext/java/nokogiri/XmlText.java +119 -0
  37. data/ext/java/nokogiri/XmlXpathContext.java +199 -0
  38. data/ext/java/nokogiri/XsltStylesheet.java +197 -0
  39. data/ext/java/nokogiri/internals/HtmlDomParserContext.java +204 -0
  40. data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
  41. data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +86 -0
  42. data/ext/java/nokogiri/internals/NokogiriHandler.java +327 -0
  43. data/ext/java/nokogiri/internals/NokogiriHelpers.java +639 -0
  44. data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +167 -0
  45. data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +130 -0
  46. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +74 -0
  47. data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
  48. data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +79 -0
  49. data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +141 -0
  50. data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +73 -0
  51. data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +67 -0
  52. data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +86 -0
  53. data/ext/java/nokogiri/internals/ParserContext.java +276 -0
  54. data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
  55. data/ext/java/nokogiri/internals/ReaderNode.java +531 -0
  56. data/ext/java/nokogiri/internals/SaveContextVisitor.java +567 -0
  57. data/ext/java/nokogiri/internals/SchemaErrorHandler.java +76 -0
  58. data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
  59. data/ext/java/nokogiri/internals/XmlDomParser.java +76 -0
  60. data/ext/java/nokogiri/internals/XmlDomParserContext.java +244 -0
  61. data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
  62. data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
  63. data/ext/nokogiri/depend +358 -0
  64. data/ext/nokogiri/extconf.rb +124 -0
  65. data/ext/nokogiri/html_document.c +154 -0
  66. data/ext/nokogiri/html_document.h +10 -0
  67. data/ext/nokogiri/html_element_description.c +276 -0
  68. data/ext/nokogiri/html_element_description.h +10 -0
  69. data/ext/nokogiri/html_entity_lookup.c +32 -0
  70. data/ext/nokogiri/html_entity_lookup.h +8 -0
  71. data/ext/nokogiri/html_sax_parser_context.c +94 -0
  72. data/ext/nokogiri/html_sax_parser_context.h +11 -0
  73. data/ext/nokogiri/nokogiri.c +115 -0
  74. data/ext/nokogiri/nokogiri.h +160 -0
  75. data/ext/nokogiri/xml_attr.c +94 -0
  76. data/ext/nokogiri/xml_attr.h +9 -0
  77. data/ext/nokogiri/xml_attribute_decl.c +70 -0
  78. data/ext/nokogiri/xml_attribute_decl.h +9 -0
  79. data/ext/nokogiri/xml_cdata.c +56 -0
  80. data/ext/nokogiri/xml_cdata.h +9 -0
  81. data/ext/nokogiri/xml_comment.c +54 -0
  82. data/ext/nokogiri/xml_comment.h +9 -0
  83. data/ext/nokogiri/xml_document.c +478 -0
  84. data/ext/nokogiri/xml_document.h +23 -0
  85. data/ext/nokogiri/xml_document_fragment.c +48 -0
  86. data/ext/nokogiri/xml_document_fragment.h +10 -0
  87. data/ext/nokogiri/xml_dtd.c +202 -0
  88. data/ext/nokogiri/xml_dtd.h +10 -0
  89. data/ext/nokogiri/xml_element_content.c +123 -0
  90. data/ext/nokogiri/xml_element_content.h +10 -0
  91. data/ext/nokogiri/xml_element_decl.c +69 -0
  92. data/ext/nokogiri/xml_element_decl.h +9 -0
  93. data/ext/nokogiri/xml_encoding_handler.c +79 -0
  94. data/ext/nokogiri/xml_encoding_handler.h +8 -0
  95. data/ext/nokogiri/xml_entity_decl.c +110 -0
  96. data/ext/nokogiri/xml_entity_decl.h +10 -0
  97. data/ext/nokogiri/xml_entity_reference.c +52 -0
  98. data/ext/nokogiri/xml_entity_reference.h +9 -0
  99. data/ext/nokogiri/xml_io.c +56 -0
  100. data/ext/nokogiri/xml_io.h +11 -0
  101. data/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  102. data/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  103. data/ext/nokogiri/xml_namespace.c +84 -0
  104. data/ext/nokogiri/xml_namespace.h +13 -0
  105. data/ext/nokogiri/xml_node.c +1385 -0
  106. data/ext/nokogiri/xml_node.h +13 -0
  107. data/ext/nokogiri/xml_node_set.c +418 -0
  108. data/ext/nokogiri/xml_node_set.h +9 -0
  109. data/ext/nokogiri/xml_processing_instruction.c +56 -0
  110. data/ext/nokogiri/xml_processing_instruction.h +9 -0
  111. data/ext/nokogiri/xml_reader.c +684 -0
  112. data/ext/nokogiri/xml_reader.h +10 -0
  113. data/ext/nokogiri/xml_relax_ng.c +161 -0
  114. data/ext/nokogiri/xml_relax_ng.h +9 -0
  115. data/ext/nokogiri/xml_sax_parser.c +293 -0
  116. data/ext/nokogiri/xml_sax_parser.h +39 -0
  117. data/ext/nokogiri/xml_sax_parser_context.c +199 -0
  118. data/ext/nokogiri/xml_sax_parser_context.h +10 -0
  119. data/ext/nokogiri/xml_sax_push_parser.c +115 -0
  120. data/ext/nokogiri/xml_sax_push_parser.h +9 -0
  121. data/ext/nokogiri/xml_schema.c +205 -0
  122. data/ext/nokogiri/xml_schema.h +9 -0
  123. data/ext/nokogiri/xml_syntax_error.c +58 -0
  124. data/ext/nokogiri/xml_syntax_error.h +13 -0
  125. data/ext/nokogiri/xml_text.c +50 -0
  126. data/ext/nokogiri/xml_text.h +9 -0
  127. data/ext/nokogiri/xml_xpath_context.c +309 -0
  128. data/ext/nokogiri/xml_xpath_context.h +9 -0
  129. data/ext/nokogiri/xslt_stylesheet.c +264 -0
  130. data/ext/nokogiri/xslt_stylesheet.h +9 -0
  131. data/lib/nokogiri.rb +127 -0
  132. data/lib/nokogiri/css.rb +27 -0
  133. data/lib/nokogiri/css/node.rb +99 -0
  134. data/lib/nokogiri/css/parser.rb +677 -0
  135. data/lib/nokogiri/css/parser.y +237 -0
  136. data/lib/nokogiri/css/parser_extras.rb +91 -0
  137. data/lib/nokogiri/css/syntax_error.rb +7 -0
  138. data/lib/nokogiri/css/tokenizer.rb +152 -0
  139. data/lib/nokogiri/css/tokenizer.rex +55 -0
  140. data/lib/nokogiri/css/xpath_visitor.rb +171 -0
  141. data/lib/nokogiri/decorators/slop.rb +35 -0
  142. data/lib/nokogiri/html.rb +36 -0
  143. data/lib/nokogiri/html/builder.rb +35 -0
  144. data/lib/nokogiri/html/document.rb +213 -0
  145. data/lib/nokogiri/html/document_fragment.rb +41 -0
  146. data/lib/nokogiri/html/element_description.rb +23 -0
  147. data/lib/nokogiri/html/element_description_defaults.rb +671 -0
  148. data/lib/nokogiri/html/entity_lookup.rb +13 -0
  149. data/lib/nokogiri/html/sax/parser.rb +52 -0
  150. data/lib/nokogiri/html/sax/parser_context.rb +16 -0
  151. data/lib/nokogiri/nokogiri.jar +0 -0
  152. data/lib/nokogiri/syntax_error.rb +4 -0
  153. data/lib/nokogiri/version.rb +88 -0
  154. data/lib/nokogiri/xml.rb +67 -0
  155. data/lib/nokogiri/xml/attr.rb +14 -0
  156. data/lib/nokogiri/xml/attribute_decl.rb +18 -0
  157. data/lib/nokogiri/xml/builder.rb +425 -0
  158. data/lib/nokogiri/xml/cdata.rb +11 -0
  159. data/lib/nokogiri/xml/character_data.rb +7 -0
  160. data/lib/nokogiri/xml/document.rb +234 -0
  161. data/lib/nokogiri/xml/document_fragment.rb +98 -0
  162. data/lib/nokogiri/xml/dtd.rb +22 -0
  163. data/lib/nokogiri/xml/element_content.rb +36 -0
  164. data/lib/nokogiri/xml/element_decl.rb +13 -0
  165. data/lib/nokogiri/xml/entity_decl.rb +19 -0
  166. data/lib/nokogiri/xml/namespace.rb +13 -0
  167. data/lib/nokogiri/xml/node.rb +915 -0
  168. data/lib/nokogiri/xml/node/save_options.rb +61 -0
  169. data/lib/nokogiri/xml/node_set.rb +357 -0
  170. data/lib/nokogiri/xml/notation.rb +6 -0
  171. data/lib/nokogiri/xml/parse_options.rb +93 -0
  172. data/lib/nokogiri/xml/pp.rb +2 -0
  173. data/lib/nokogiri/xml/pp/character_data.rb +18 -0
  174. data/lib/nokogiri/xml/pp/node.rb +56 -0
  175. data/lib/nokogiri/xml/processing_instruction.rb +8 -0
  176. data/lib/nokogiri/xml/reader.rb +112 -0
  177. data/lib/nokogiri/xml/relax_ng.rb +32 -0
  178. data/lib/nokogiri/xml/sax.rb +4 -0
  179. data/lib/nokogiri/xml/sax/document.rb +164 -0
  180. data/lib/nokogiri/xml/sax/parser.rb +115 -0
  181. data/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  182. data/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  183. data/lib/nokogiri/xml/schema.rb +63 -0
  184. data/lib/nokogiri/xml/syntax_error.rb +47 -0
  185. data/lib/nokogiri/xml/text.rb +9 -0
  186. data/lib/nokogiri/xml/xpath.rb +10 -0
  187. data/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  188. data/lib/nokogiri/xml/xpath_context.rb +16 -0
  189. data/lib/nokogiri/xslt.rb +52 -0
  190. data/lib/nokogiri/xslt/stylesheet.rb +25 -0
  191. data/lib/xsd/xmlparser/nokogiri.rb +90 -0
  192. data/nokogiri_help_responses.md +40 -0
  193. data/tasks/cross_compile.rb +152 -0
  194. data/tasks/nokogiri.org.rb +18 -0
  195. data/tasks/test.rb +94 -0
  196. data/test/css/test_nthiness.rb +159 -0
  197. data/test/css/test_parser.rb +303 -0
  198. data/test/css/test_tokenizer.rb +198 -0
  199. data/test/css/test_xpath_visitor.rb +85 -0
  200. data/test/decorators/test_slop.rb +16 -0
  201. data/test/files/2ch.html +108 -0
  202. data/test/files/address_book.rlx +12 -0
  203. data/test/files/address_book.xml +10 -0
  204. data/test/files/bar/bar.xsd +4 -0
  205. data/test/files/dont_hurt_em_why.xml +422 -0
  206. data/test/files/encoding.html +82 -0
  207. data/test/files/encoding.xhtml +84 -0
  208. data/test/files/exslt.xml +8 -0
  209. data/test/files/exslt.xslt +35 -0
  210. data/test/files/foo/foo.xsd +4 -0
  211. data/test/files/metacharset.html +10 -0
  212. data/test/files/noencoding.html +47 -0
  213. data/test/files/po.xml +32 -0
  214. data/test/files/po.xsd +66 -0
  215. data/test/files/shift_jis.html +10 -0
  216. data/test/files/shift_jis.xml +5 -0
  217. data/test/files/snuggles.xml +3 -0
  218. data/test/files/staff.dtd +10 -0
  219. data/test/files/staff.xml +59 -0
  220. data/test/files/staff.xslt +32 -0
  221. data/test/files/tlm.html +850 -0
  222. data/test/files/valid_bar.xml +2 -0
  223. data/test/helper.rb +173 -0
  224. data/test/html/sax/test_parser.rb +136 -0
  225. data/test/html/sax/test_parser_context.rb +48 -0
  226. data/test/html/test_builder.rb +164 -0
  227. data/test/html/test_document.rb +472 -0
  228. data/test/html/test_document_encoding.rb +138 -0
  229. data/test/html/test_document_fragment.rb +255 -0
  230. data/test/html/test_element_description.rb +100 -0
  231. data/test/html/test_named_characters.rb +14 -0
  232. data/test/html/test_node.rb +190 -0
  233. data/test/html/test_node_encoding.rb +27 -0
  234. data/test/test_convert_xpath.rb +135 -0
  235. data/test/test_css_cache.rb +45 -0
  236. data/test/test_encoding_handler.rb +46 -0
  237. data/test/test_memory_leak.rb +72 -0
  238. data/test/test_nokogiri.rb +132 -0
  239. data/test/test_reader.rb +425 -0
  240. data/test/test_soap4r_sax.rb +52 -0
  241. data/test/test_xslt_transforms.rb +193 -0
  242. data/test/xml/node/test_save_options.rb +28 -0
  243. data/test/xml/node/test_subclass.rb +44 -0
  244. data/test/xml/sax/test_parser.rb +338 -0
  245. data/test/xml/sax/test_parser_context.rb +113 -0
  246. data/test/xml/sax/test_push_parser.rb +156 -0
  247. data/test/xml/test_attr.rb +65 -0
  248. data/test/xml/test_attribute_decl.rb +86 -0
  249. data/test/xml/test_builder.rb +227 -0
  250. data/test/xml/test_cdata.rb +50 -0
  251. data/test/xml/test_comment.rb +29 -0
  252. data/test/xml/test_document.rb +697 -0
  253. data/test/xml/test_document_encoding.rb +26 -0
  254. data/test/xml/test_document_fragment.rb +192 -0
  255. data/test/xml/test_dtd.rb +107 -0
  256. data/test/xml/test_dtd_encoding.rb +33 -0
  257. data/test/xml/test_element_content.rb +56 -0
  258. data/test/xml/test_element_decl.rb +73 -0
  259. data/test/xml/test_entity_decl.rb +122 -0
  260. data/test/xml/test_entity_reference.rb +21 -0
  261. data/test/xml/test_namespace.rb +70 -0
  262. data/test/xml/test_node.rb +917 -0
  263. data/test/xml/test_node_attributes.rb +34 -0
  264. data/test/xml/test_node_encoding.rb +107 -0
  265. data/test/xml/test_node_reparenting.rb +334 -0
  266. data/test/xml/test_node_set.rb +742 -0
  267. data/test/xml/test_parse_options.rb +52 -0
  268. data/test/xml/test_processing_instruction.rb +30 -0
  269. data/test/xml/test_reader_encoding.rb +126 -0
  270. data/test/xml/test_relax_ng.rb +60 -0
  271. data/test/xml/test_schema.rb +94 -0
  272. data/test/xml/test_syntax_error.rb +12 -0
  273. data/test/xml/test_text.rb +47 -0
  274. data/test/xml/test_unparented_node.rb +381 -0
  275. data/test/xml/test_xpath.rb +237 -0
  276. data/test/xslt/test_custom_functions.rb +94 -0
  277. data/test/xslt/test_exception_handling.rb +37 -0
  278. metadata +552 -0
@@ -0,0 +1,237 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ module XML
5
+ class TestXPath < Nokogiri::TestCase
6
+
7
+ # ** WHY ALL THOSE _if Nokogiri.uses_libxml?_ **
8
+ # Hi, my dear readers,
9
+ #
10
+ # After reading these tests you may be wondering why all those ugly
11
+ # if Nokogiri.uses_libxml? sparsed over the whole document. Well, let
12
+ # me explain it. While using XPath in Java, you need the extension
13
+ # functions to be in a namespace. This is not required by XPath, afaik,
14
+ # but it is an usual convention though.
15
+ #
16
+ # Furthermore, CSS does not support extension functions but it does in
17
+ # Nokogiri. Result: you cannot use them in JRuby impl. At least, until
18
+ # the CSS to XPath parser is patched, and let me say that there are more
19
+ # important features to add before that happens. I hope you will forgive
20
+ # me.
21
+ #
22
+ # Yours truly,
23
+ #
24
+ # The guy whose headaches belong to Nokogiri JRuby impl.
25
+
26
+
27
+ def setup
28
+ super
29
+
30
+ @xml = Nokogiri::XML.parse(File.read(XML_FILE), XML_FILE)
31
+
32
+ @ns = @xml.root.namespaces
33
+
34
+ # TODO: Maybe I should move this to the original code.
35
+ @ns["nokogiri"] = "http://www.nokogiri.org/default_ns/ruby/extensions_functions"
36
+
37
+ @handler = Class.new {
38
+ attr_reader :things
39
+
40
+ def initialize
41
+ @things = []
42
+ end
43
+
44
+ def thing thing
45
+ @things << thing
46
+ thing
47
+ end
48
+
49
+ def returns_array node_set
50
+ @things << node_set.to_a
51
+ node_set.to_a
52
+ end
53
+
54
+ def my_filter set, attribute, value
55
+ set.find_all { |x| x[attribute] == value }
56
+ end
57
+
58
+ def saves_node_set node_set
59
+ @things = node_set
60
+ end
61
+ }.new
62
+ end
63
+
64
+ def test_variable_binding
65
+ assert_equal 4, @xml.xpath('//address[@domestic=$value]', nil, :value => 'Yes').length
66
+ end
67
+
68
+ def test_unknown_attribute
69
+ assert_equal 0, @xml.xpath('//employee[@id="asdfasdf"]/@fooo').length
70
+ assert_nil @xml.xpath('//employee[@id="asdfasdf"]/@fooo')[0]
71
+ end
72
+
73
+ def test_boolean
74
+ assert_equal false, @xml.xpath('1 = 2')
75
+ end
76
+
77
+ def test_number
78
+ assert_equal 2, @xml.xpath('1 + 1')
79
+ end
80
+
81
+ def test_string
82
+ assert_equal 'foo', @xml.xpath('concat("fo", "o")')
83
+ end
84
+
85
+ def test_css_search_uses_custom_selectors_with_arguments
86
+ set = if Nokogiri.uses_libxml?
87
+ @xml.css('employee > address:my_filter("domestic", "Yes")', @handler)
88
+ else
89
+ @xml.xpath("//employee/address[nokogiri:my_filter(., \"domestic\", \"Yes\")]", @ns, @handler)
90
+ end
91
+ assert set.length > 0
92
+ set.each do |node|
93
+ assert_equal 'Yes', node['domestic']
94
+ end
95
+ end
96
+
97
+ def test_css_search_uses_custom_selectors
98
+ set = @xml.xpath('//employee')
99
+ assert_nothing_raised do
100
+ if Nokogiri.uses_libxml?
101
+ @xml.css('employee:thing()', @handler)
102
+ else
103
+ @xml.xpath("//employee[nokogiri:thing(.)]", @ns, @handler)
104
+ end
105
+ end
106
+ assert_equal(set.length, @handler.things.length)
107
+ assert_equal(set.to_a, @handler.things.flatten)
108
+ end
109
+
110
+ def test_pass_self_to_function
111
+ set = if Nokogiri.uses_libxml?
112
+ @xml.xpath('//employee/address[my_filter(., "domestic", "Yes")]', @handler)
113
+ else
114
+ @xml.xpath('//employee/address[nokogiri:my_filter(., "domestic", "Yes")]', @ns, @handler)
115
+ end
116
+ assert set.length > 0
117
+ set.each do |node|
118
+ assert_equal 'Yes', node['domestic']
119
+ end
120
+ end
121
+
122
+ def test_custom_xpath_function_gets_strings
123
+ set = @xml.xpath('//employee')
124
+ if Nokogiri.uses_libxml?
125
+ @xml.xpath('//employee[thing("asdf")]', @handler)
126
+ else
127
+ @xml.xpath('//employee[nokogiri:thing("asdf")]', @ns, @handler)
128
+ end
129
+ assert_equal(set.length, @handler.things.length)
130
+ assert_equal(['asdf'] * set.length, @handler.things)
131
+ end
132
+
133
+ def test_custom_xpath_gets_true_booleans
134
+ set = @xml.xpath('//employee')
135
+ if Nokogiri.uses_libxml?
136
+ @xml.xpath('//employee[thing(true())]', @handler)
137
+ else
138
+ @xml.xpath("//employee[nokogiri:thing(true())]", @ns, @handler)
139
+ end
140
+ assert_equal(set.length, @handler.things.length)
141
+ assert_equal([true] * set.length, @handler.things)
142
+ end
143
+
144
+ def test_custom_xpath_gets_false_booleans
145
+ set = @xml.xpath('//employee')
146
+ if Nokogiri.uses_libxml?
147
+ @xml.xpath('//employee[thing(false())]', @handler)
148
+ else
149
+ @xml.xpath("//employee[nokogiri:thing(false())]", @ns, @handler)
150
+ end
151
+ assert_equal(set.length, @handler.things.length)
152
+ assert_equal([false] * set.length, @handler.things)
153
+ end
154
+
155
+ def test_custom_xpath_gets_numbers
156
+ set = @xml.xpath('//employee')
157
+ if Nokogiri.uses_libxml?
158
+ @xml.xpath('//employee[thing(10)]', @handler)
159
+ else
160
+ @xml.xpath('//employee[nokogiri:thing(10)]', @ns, @handler)
161
+ end
162
+ assert_equal(set.length, @handler.things.length)
163
+ assert_equal([10] * set.length, @handler.things)
164
+ end
165
+
166
+ def test_custom_xpath_gets_node_sets
167
+ set = @xml.xpath('//employee/name')
168
+ if Nokogiri.uses_libxml?
169
+ @xml.xpath('//employee[thing(name)]', @handler)
170
+ else
171
+ @xml.xpath('//employee[nokogiri:thing(name)]', @ns, @handler)
172
+ end
173
+ assert_equal(set.length, @handler.things.length)
174
+ assert_equal(set.to_a, @handler.things.flatten)
175
+ end
176
+
177
+ def test_custom_xpath_gets_node_sets_and_returns_array
178
+ set = @xml.xpath('//employee/name')
179
+ if Nokogiri.uses_libxml?
180
+ @xml.xpath('//employee[returns_array(name)]', @handler)
181
+ else
182
+ @xml.xpath('//employee[nokogiri:returns_array(name)]', @ns, @handler)
183
+ end
184
+ assert_equal(set.length, @handler.things.length)
185
+ assert_equal(set.to_a, @handler.things.flatten)
186
+ end
187
+
188
+ def test_custom_xpath_handler_is_passed_a_decorated_node_set
189
+ x = Module.new do
190
+ def awesome! ; end
191
+ end
192
+ util_decorate(@xml, x)
193
+
194
+ assert @xml.xpath('//employee/name')
195
+
196
+ @xml.xpath('//employee[saves_node_set(name)]', @handler)
197
+ assert_equal @xml, @handler.things.document
198
+ assert @handler.things.respond_to?(:awesome!)
199
+ end
200
+
201
+ def test_code_that_invokes_OP_RESET_inside_libxml2
202
+ doc = "<html><body id='foo'><foo>hi</foo></body></html>"
203
+ xpath = 'id("foo")//foo'
204
+ nokogiri = Nokogiri::HTML.parse(doc)
205
+ assert nokogiri.xpath(xpath)
206
+ end
207
+
208
+ def test_custom_xpath_handler_with_args_under_gc_pressure
209
+ # see http://github.com/tenderlove/nokogiri/issues/#issue/345
210
+ tool_inspector = Class.new do
211
+ def name_equals(nodeset, name, *args)
212
+ nodeset.all? do |node|
213
+ args.each { |thing| thing.inspect }
214
+ node["name"] == name
215
+ end
216
+ end
217
+ end.new
218
+
219
+ xml = <<-EOXML
220
+ <toolbox>
221
+ #{"<tool name='hammer'/><tool name='wrench'/>" * 10}
222
+ </toolbox>
223
+ EOXML
224
+ doc = Nokogiri::XML xml
225
+
226
+ # long list of long arguments, to apply GC pressure during
227
+ # ruby_funcall argument marshalling
228
+ xpath = ["//tool[name_equals(.,'hammer'"]
229
+ 1000.times { xpath << "'unused argument #{'x' * 1000}'" }
230
+ xpath << "'unused argument')]"
231
+ xpath = xpath.join(',')
232
+
233
+ assert_equal doc.xpath("//tool[@name='hammer']"), doc.xpath(xpath, tool_inspector)
234
+ end
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,94 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ require "helper"
4
+
5
+ module Nokogiri
6
+ module XSLT
7
+ class TestCustomFunctions < Nokogiri::TestCase
8
+ def setup
9
+ super
10
+ @xml = Nokogiri.XML(<<-EOXML)
11
+ <?xml version="1.0" encoding="UTF-8"?>
12
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
13
+ "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
14
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
15
+ <head>
16
+ <meta http-equiv="Content-type" content="application/xhtml+xml"/>
17
+ <title>Foo</title>
18
+ </head>
19
+ <body>
20
+ <h1>Foo</h1>
21
+ <p>Lorem ipsum.</p>
22
+ </body>
23
+ </html>
24
+ EOXML
25
+ end
26
+
27
+ def test_function
28
+ skip("Pure Java version doesn't support this feature.") if !Nokogiri.uses_libxml?
29
+ foo = Class.new do
30
+ def capitalize nodes
31
+ nodes.first.content.upcase
32
+ end
33
+ end
34
+
35
+ XSLT.register "http://e.org/functions", foo
36
+
37
+ xsl = Nokogiri.XSLT(<<-EOXSL)
38
+ <?xml version="1.0"?>
39
+ <xsl:stylesheet version="1.0"
40
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
41
+ xmlns:f="http://e.org/functions"
42
+ extension-element-prefixes="f">
43
+
44
+ <xsl:template match="text()">
45
+ <xsl:copy-of select="f:capitalize(.)"/>
46
+ </xsl:template>
47
+
48
+ <xsl:template match="@*|node()">
49
+ <xsl:copy>
50
+ <xsl:apply-templates select="@*|node()"/>
51
+ <xsl:apply-imports/>
52
+ </xsl:copy>
53
+ </xsl:template>
54
+
55
+ </xsl:stylesheet>
56
+ EOXSL
57
+ result = xsl.transform @xml
58
+ assert_equal 'FOO', result.css('title').first.text
59
+ end
60
+
61
+ def test_function_XSLT
62
+ skip("Pure Java version doesn't support this feature.") if !Nokogiri.uses_libxml?
63
+ foo = Class.new do
64
+ def america nodes
65
+ nodes.first.content.upcase
66
+ end
67
+ end
68
+
69
+ xsl = Nokogiri.XSLT(<<-EOXSL, "http://e.org/functions" => foo)
70
+ <?xml version="1.0"?>
71
+ <xsl:stylesheet version="1.0"
72
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
73
+ xmlns:f="http://e.org/functions"
74
+ extension-element-prefixes="f">
75
+
76
+ <xsl:template match="text()">
77
+ <xsl:copy-of select="f:america(.)"/>
78
+ </xsl:template>
79
+
80
+ <xsl:template match="@*|node()">
81
+ <xsl:copy>
82
+ <xsl:apply-templates select="@*|node()"/>
83
+ <xsl:apply-imports/>
84
+ </xsl:copy>
85
+ </xsl:template>
86
+
87
+ </xsl:stylesheet>
88
+ EOXSL
89
+ result = xsl.transform @xml
90
+ assert_equal 'FOO', result.css('title').first.text
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,37 @@
1
+ require "helper"
2
+
3
+ module Nokogiri
4
+ module XSLT
5
+ class TestExceptionHandling < Nokogiri::TestCase
6
+ def test_java_exception_handling
7
+ skip('This test is for Java only') if Nokogiri.uses_libxml?
8
+
9
+ xml = Nokogiri.XML(<<-EOXML)
10
+ <foo>
11
+ <bar/>
12
+ </foo>
13
+ EOXML
14
+
15
+ xsl = Nokogiri.XSLT(<<-EOXSL)
16
+ <?xml version="1.0"?>
17
+ <xsl:stylesheet version="1.0"
18
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
19
+
20
+ <xsl:template match="/">
21
+ <a/>
22
+ <b/>
23
+ </xsl:template>
24
+ </xsl:stylesheet>
25
+ EOXSL
26
+
27
+ begin
28
+ xsl.transform xml
29
+ fail('It should not get here')
30
+ rescue RuntimeError => e
31
+ assert_match(/HIERARCHY_REQUEST_ERR/, e.to_s, 'The exception message does not contain the expected information')
32
+ end
33
+ end
34
+
35
+ end
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,552 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nokogiri-maven
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.5.0
6
+ platform: java
7
+ authors:
8
+ - Aaron Patterson
9
+ - Mike Dalessio
10
+ - Yoko Harada
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2011-07-01 00:00:00 +05:30
16
+ default_executable: nokogiri
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: racc
20
+ prerelease: false
21
+ requirement: &id001 !ruby/object:Gem::Requirement
22
+ none: false
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.4.6
27
+ type: :development
28
+ version_requirements: *id001
29
+ - !ruby/object:Gem::Dependency
30
+ name: rexical
31
+ prerelease: false
32
+ requirement: &id002 !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: 1.0.5
38
+ type: :development
39
+ version_requirements: *id002
40
+ - !ruby/object:Gem::Dependency
41
+ name: rake-compiler
42
+ prerelease: false
43
+ requirement: &id003 !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 0.7.9
49
+ type: :development
50
+ version_requirements: *id003
51
+ - !ruby/object:Gem::Dependency
52
+ name: minitest
53
+ prerelease: false
54
+ requirement: &id004 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ version: 2.2.2
60
+ type: :development
61
+ version_requirements: *id004
62
+ - !ruby/object:Gem::Dependency
63
+ name: mini_portile
64
+ prerelease: false
65
+ requirement: &id005 !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 0.2.2
71
+ type: :development
72
+ version_requirements: *id005
73
+ - !ruby/object:Gem::Dependency
74
+ name: hoe-debugging
75
+ prerelease: false
76
+ requirement: &id006 !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: "0"
82
+ type: :development
83
+ version_requirements: *id006
84
+ - !ruby/object:Gem::Dependency
85
+ name: hoe-git
86
+ prerelease: false
87
+ requirement: &id007 !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id007
95
+ - !ruby/object:Gem::Dependency
96
+ name: hoe-gemspec
97
+ prerelease: false
98
+ requirement: &id008 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ type: :development
105
+ version_requirements: *id008
106
+ - !ruby/object:Gem::Dependency
107
+ name: hoe-bundler
108
+ prerelease: false
109
+ requirement: &id009 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: "0"
115
+ type: :development
116
+ version_requirements: *id009
117
+ - !ruby/object:Gem::Dependency
118
+ name: hoe
119
+ prerelease: false
120
+ requirement: &id010 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 2.9.4
126
+ type: :development
127
+ version_requirements: *id010
128
+ description: "clone with maven jar dependencies: Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser. Among Nokogiri's\n\
129
+ many features is the ability to search documents via XPath or CSS3 selectors.\n\n\
130
+ XML is like violence - if it doesn\xE2\x80\x99t solve your problems, you are not using\n\
131
+ enough of it."
132
+ email:
133
+ - aaronp@rubyforge.org
134
+ - mike.dalessio@gmail.com
135
+ - yokolet@gmail.com
136
+ executables:
137
+ - nokogiri
138
+ extensions: []
139
+
140
+ extra_rdoc_files:
141
+ - Manifest.txt
142
+ - README.ja.rdoc
143
+ - CHANGELOG.rdoc
144
+ - CHANGELOG.ja.rdoc
145
+ - README.rdoc
146
+ - ext/nokogiri/xml_sax_push_parser.c
147
+ - ext/nokogiri/xml_relax_ng.c
148
+ - ext/nokogiri/html_sax_parser_context.c
149
+ - ext/nokogiri/html_entity_lookup.c
150
+ - ext/nokogiri/xml_text.c
151
+ - ext/nokogiri/nokogiri.c
152
+ - ext/nokogiri/xml_element_decl.c
153
+ - ext/nokogiri/xml_encoding_handler.c
154
+ - ext/nokogiri/html_document.c
155
+ - ext/nokogiri/xslt_stylesheet.c
156
+ - ext/nokogiri/xml_attribute_decl.c
157
+ - ext/nokogiri/xml_io.c
158
+ - ext/nokogiri/xml_document_fragment.c
159
+ - ext/nokogiri/xml_namespace.c
160
+ - ext/nokogiri/xml_libxml2_hacks.c
161
+ - ext/nokogiri/xml_sax_parser_context.c
162
+ - ext/nokogiri/xml_comment.c
163
+ - ext/nokogiri/xml_sax_parser.c
164
+ - ext/nokogiri/html_element_description.c
165
+ - ext/nokogiri/xml_xpath_context.c
166
+ - ext/nokogiri/xml_syntax_error.c
167
+ - ext/nokogiri/xml_document.c
168
+ - ext/nokogiri/xml_entity_decl.c
169
+ - ext/nokogiri/xml_node.c
170
+ - ext/nokogiri/xml_node_set.c
171
+ - ext/nokogiri/xml_reader.c
172
+ - ext/nokogiri/xml_processing_instruction.c
173
+ - ext/nokogiri/xml_element_content.c
174
+ - ext/nokogiri/xml_dtd.c
175
+ - ext/nokogiri/xml_attr.c
176
+ - ext/nokogiri/xml_schema.c
177
+ - ext/nokogiri/xml_cdata.c
178
+ - ext/nokogiri/xml_entity_reference.c
179
+ files:
180
+ - CHANGELOG.ja.rdoc
181
+ - CHANGELOG.rdoc
182
+ - Manifest.txt
183
+ - README.ja.rdoc
184
+ - README.rdoc
185
+ - Rakefile
186
+ - bin/nokogiri
187
+ - ext/java/nokogiri/EncodingHandler.java
188
+ - ext/java/nokogiri/HtmlDocument.java
189
+ - ext/java/nokogiri/HtmlElementDescription.java
190
+ - ext/java/nokogiri/HtmlEntityLookup.java
191
+ - ext/java/nokogiri/HtmlSaxParserContext.java
192
+ - ext/java/nokogiri/NokogiriService.java
193
+ - ext/java/nokogiri/XmlAttr.java
194
+ - ext/java/nokogiri/XmlAttributeDecl.java
195
+ - ext/java/nokogiri/XmlCdata.java
196
+ - ext/java/nokogiri/XmlComment.java
197
+ - ext/java/nokogiri/XmlDocument.java
198
+ - ext/java/nokogiri/XmlDocumentFragment.java
199
+ - ext/java/nokogiri/XmlDtd.java
200
+ - ext/java/nokogiri/XmlElement.java
201
+ - ext/java/nokogiri/XmlElementContent.java
202
+ - ext/java/nokogiri/XmlElementDecl.java
203
+ - ext/java/nokogiri/XmlEntityDecl.java
204
+ - ext/java/nokogiri/XmlEntityReference.java
205
+ - ext/java/nokogiri/XmlNamespace.java
206
+ - ext/java/nokogiri/XmlNode.java
207
+ - ext/java/nokogiri/XmlNodeSet.java
208
+ - ext/java/nokogiri/XmlProcessingInstruction.java
209
+ - ext/java/nokogiri/XmlReader.java
210
+ - ext/java/nokogiri/XmlRelaxng.java
211
+ - ext/java/nokogiri/XmlSaxParserContext.java
212
+ - ext/java/nokogiri/XmlSaxPushParser.java
213
+ - ext/java/nokogiri/XmlSchema.java
214
+ - ext/java/nokogiri/XmlSyntaxError.java
215
+ - ext/java/nokogiri/XmlText.java
216
+ - ext/java/nokogiri/XmlXpathContext.java
217
+ - ext/java/nokogiri/XsltStylesheet.java
218
+ - ext/java/nokogiri/internals/HtmlDomParserContext.java
219
+ - ext/java/nokogiri/internals/NokogiriDocumentCache.java
220
+ - ext/java/nokogiri/internals/NokogiriErrorHandler.java
221
+ - ext/java/nokogiri/internals/NokogiriHandler.java
222
+ - ext/java/nokogiri/internals/NokogiriHelpers.java
223
+ - ext/java/nokogiri/internals/NokogiriNamespaceCache.java
224
+ - ext/java/nokogiri/internals/NokogiriNamespaceContext.java
225
+ - ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java
226
+ - ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java
227
+ - ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java
228
+ - ext/java/nokogiri/internals/NokogiriXPathFunction.java
229
+ - ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java
230
+ - ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java
231
+ - ext/java/nokogiri/internals/NokogiriXsltErrorListener.java
232
+ - ext/java/nokogiri/internals/ParserContext.java
233
+ - ext/java/nokogiri/internals/PushInputStream.java
234
+ - ext/java/nokogiri/internals/ReaderNode.java
235
+ - ext/java/nokogiri/internals/SaveContextVisitor.java
236
+ - ext/java/nokogiri/internals/SchemaErrorHandler.java
237
+ - ext/java/nokogiri/internals/XmlDeclHandler.java
238
+ - ext/java/nokogiri/internals/XmlDomParser.java
239
+ - ext/java/nokogiri/internals/XmlDomParserContext.java
240
+ - ext/java/nokogiri/internals/XmlSaxParser.java
241
+ - ext/java/nokogiri/internals/XsltExtensionFunction.java
242
+ - ext/nokogiri/depend
243
+ - ext/nokogiri/extconf.rb
244
+ - ext/nokogiri/html_document.c
245
+ - ext/nokogiri/html_document.h
246
+ - ext/nokogiri/html_element_description.c
247
+ - ext/nokogiri/html_element_description.h
248
+ - ext/nokogiri/html_entity_lookup.c
249
+ - ext/nokogiri/html_entity_lookup.h
250
+ - ext/nokogiri/html_sax_parser_context.c
251
+ - ext/nokogiri/html_sax_parser_context.h
252
+ - ext/nokogiri/nokogiri.c
253
+ - ext/nokogiri/nokogiri.h
254
+ - ext/nokogiri/xml_attr.c
255
+ - ext/nokogiri/xml_attr.h
256
+ - ext/nokogiri/xml_attribute_decl.c
257
+ - ext/nokogiri/xml_attribute_decl.h
258
+ - ext/nokogiri/xml_cdata.c
259
+ - ext/nokogiri/xml_cdata.h
260
+ - ext/nokogiri/xml_comment.c
261
+ - ext/nokogiri/xml_comment.h
262
+ - ext/nokogiri/xml_document.c
263
+ - ext/nokogiri/xml_document.h
264
+ - ext/nokogiri/xml_document_fragment.c
265
+ - ext/nokogiri/xml_document_fragment.h
266
+ - ext/nokogiri/xml_dtd.c
267
+ - ext/nokogiri/xml_dtd.h
268
+ - ext/nokogiri/xml_element_content.c
269
+ - ext/nokogiri/xml_element_content.h
270
+ - ext/nokogiri/xml_element_decl.c
271
+ - ext/nokogiri/xml_element_decl.h
272
+ - ext/nokogiri/xml_encoding_handler.c
273
+ - ext/nokogiri/xml_encoding_handler.h
274
+ - ext/nokogiri/xml_entity_decl.c
275
+ - ext/nokogiri/xml_entity_decl.h
276
+ - ext/nokogiri/xml_entity_reference.c
277
+ - ext/nokogiri/xml_entity_reference.h
278
+ - ext/nokogiri/xml_io.c
279
+ - ext/nokogiri/xml_io.h
280
+ - ext/nokogiri/xml_libxml2_hacks.c
281
+ - ext/nokogiri/xml_libxml2_hacks.h
282
+ - ext/nokogiri/xml_namespace.c
283
+ - ext/nokogiri/xml_namespace.h
284
+ - ext/nokogiri/xml_node.c
285
+ - ext/nokogiri/xml_node.h
286
+ - ext/nokogiri/xml_node_set.c
287
+ - ext/nokogiri/xml_node_set.h
288
+ - ext/nokogiri/xml_processing_instruction.c
289
+ - ext/nokogiri/xml_processing_instruction.h
290
+ - ext/nokogiri/xml_reader.c
291
+ - ext/nokogiri/xml_reader.h
292
+ - ext/nokogiri/xml_relax_ng.c
293
+ - ext/nokogiri/xml_relax_ng.h
294
+ - ext/nokogiri/xml_sax_parser.c
295
+ - ext/nokogiri/xml_sax_parser.h
296
+ - ext/nokogiri/xml_sax_parser_context.c
297
+ - ext/nokogiri/xml_sax_parser_context.h
298
+ - ext/nokogiri/xml_sax_push_parser.c
299
+ - ext/nokogiri/xml_sax_push_parser.h
300
+ - ext/nokogiri/xml_schema.c
301
+ - ext/nokogiri/xml_schema.h
302
+ - ext/nokogiri/xml_syntax_error.c
303
+ - ext/nokogiri/xml_syntax_error.h
304
+ - ext/nokogiri/xml_text.c
305
+ - ext/nokogiri/xml_text.h
306
+ - ext/nokogiri/xml_xpath_context.c
307
+ - ext/nokogiri/xml_xpath_context.h
308
+ - ext/nokogiri/xslt_stylesheet.c
309
+ - ext/nokogiri/xslt_stylesheet.h
310
+ - lib/nokogiri.rb
311
+ - lib/nokogiri/css.rb
312
+ - lib/nokogiri/css/node.rb
313
+ - lib/nokogiri/css/parser.rb
314
+ - lib/nokogiri/css/parser.y
315
+ - lib/nokogiri/css/parser_extras.rb
316
+ - lib/nokogiri/css/syntax_error.rb
317
+ - lib/nokogiri/css/tokenizer.rb
318
+ - lib/nokogiri/css/tokenizer.rex
319
+ - lib/nokogiri/css/xpath_visitor.rb
320
+ - lib/nokogiri/decorators/slop.rb
321
+ - lib/nokogiri/html.rb
322
+ - lib/nokogiri/html/builder.rb
323
+ - lib/nokogiri/html/document.rb
324
+ - lib/nokogiri/html/document_fragment.rb
325
+ - lib/nokogiri/html/element_description.rb
326
+ - lib/nokogiri/html/element_description_defaults.rb
327
+ - lib/nokogiri/html/entity_lookup.rb
328
+ - lib/nokogiri/html/sax/parser.rb
329
+ - lib/nokogiri/html/sax/parser_context.rb
330
+ - lib/nokogiri/syntax_error.rb
331
+ - lib/nokogiri/version.rb
332
+ - lib/nokogiri/xml.rb
333
+ - lib/nokogiri/xml/attr.rb
334
+ - lib/nokogiri/xml/attribute_decl.rb
335
+ - lib/nokogiri/xml/builder.rb
336
+ - lib/nokogiri/xml/cdata.rb
337
+ - lib/nokogiri/xml/character_data.rb
338
+ - lib/nokogiri/xml/document.rb
339
+ - lib/nokogiri/xml/document_fragment.rb
340
+ - lib/nokogiri/xml/dtd.rb
341
+ - lib/nokogiri/xml/element_content.rb
342
+ - lib/nokogiri/xml/element_decl.rb
343
+ - lib/nokogiri/xml/entity_decl.rb
344
+ - lib/nokogiri/xml/namespace.rb
345
+ - lib/nokogiri/xml/node.rb
346
+ - lib/nokogiri/xml/node/save_options.rb
347
+ - lib/nokogiri/xml/node_set.rb
348
+ - lib/nokogiri/xml/notation.rb
349
+ - lib/nokogiri/xml/parse_options.rb
350
+ - lib/nokogiri/xml/pp.rb
351
+ - lib/nokogiri/xml/pp/character_data.rb
352
+ - lib/nokogiri/xml/pp/node.rb
353
+ - lib/nokogiri/xml/processing_instruction.rb
354
+ - lib/nokogiri/xml/reader.rb
355
+ - lib/nokogiri/xml/relax_ng.rb
356
+ - lib/nokogiri/xml/sax.rb
357
+ - lib/nokogiri/xml/sax/document.rb
358
+ - lib/nokogiri/xml/sax/parser.rb
359
+ - lib/nokogiri/xml/sax/parser_context.rb
360
+ - lib/nokogiri/xml/sax/push_parser.rb
361
+ - lib/nokogiri/xml/schema.rb
362
+ - lib/nokogiri/xml/syntax_error.rb
363
+ - lib/nokogiri/xml/text.rb
364
+ - lib/nokogiri/xml/xpath.rb
365
+ - lib/nokogiri/xml/xpath/syntax_error.rb
366
+ - lib/nokogiri/xml/xpath_context.rb
367
+ - lib/nokogiri/xslt.rb
368
+ - lib/nokogiri/xslt/stylesheet.rb
369
+ - lib/xsd/xmlparser/nokogiri.rb
370
+ - nokogiri_help_responses.md
371
+ - tasks/cross_compile.rb
372
+ - tasks/nokogiri.org.rb
373
+ - tasks/test.rb
374
+ - test/css/test_nthiness.rb
375
+ - test/css/test_parser.rb
376
+ - test/css/test_tokenizer.rb
377
+ - test/css/test_xpath_visitor.rb
378
+ - test/decorators/test_slop.rb
379
+ - test/files/2ch.html
380
+ - test/files/address_book.rlx
381
+ - test/files/address_book.xml
382
+ - test/files/bar/bar.xsd
383
+ - test/files/dont_hurt_em_why.xml
384
+ - test/files/encoding.html
385
+ - test/files/encoding.xhtml
386
+ - test/files/exslt.xml
387
+ - test/files/exslt.xslt
388
+ - test/files/foo/foo.xsd
389
+ - test/files/metacharset.html
390
+ - test/files/noencoding.html
391
+ - test/files/po.xml
392
+ - test/files/po.xsd
393
+ - test/files/shift_jis.html
394
+ - test/files/shift_jis.xml
395
+ - test/files/snuggles.xml
396
+ - test/files/staff.dtd
397
+ - test/files/staff.xml
398
+ - test/files/staff.xslt
399
+ - test/files/tlm.html
400
+ - test/files/valid_bar.xml
401
+ - test/helper.rb
402
+ - test/html/sax/test_parser.rb
403
+ - test/html/sax/test_parser_context.rb
404
+ - test/html/test_builder.rb
405
+ - test/html/test_document.rb
406
+ - test/html/test_document_encoding.rb
407
+ - test/html/test_document_fragment.rb
408
+ - test/html/test_element_description.rb
409
+ - test/html/test_named_characters.rb
410
+ - test/html/test_node.rb
411
+ - test/html/test_node_encoding.rb
412
+ - test/test_convert_xpath.rb
413
+ - test/test_css_cache.rb
414
+ - test/test_encoding_handler.rb
415
+ - test/test_memory_leak.rb
416
+ - test/test_nokogiri.rb
417
+ - test/test_reader.rb
418
+ - test/test_soap4r_sax.rb
419
+ - test/test_xslt_transforms.rb
420
+ - test/xml/node/test_save_options.rb
421
+ - test/xml/node/test_subclass.rb
422
+ - test/xml/sax/test_parser.rb
423
+ - test/xml/sax/test_parser_context.rb
424
+ - test/xml/sax/test_push_parser.rb
425
+ - test/xml/test_attr.rb
426
+ - test/xml/test_attribute_decl.rb
427
+ - test/xml/test_builder.rb
428
+ - test/xml/test_cdata.rb
429
+ - test/xml/test_comment.rb
430
+ - test/xml/test_document.rb
431
+ - test/xml/test_document_encoding.rb
432
+ - test/xml/test_document_fragment.rb
433
+ - test/xml/test_dtd.rb
434
+ - test/xml/test_dtd_encoding.rb
435
+ - test/xml/test_element_content.rb
436
+ - test/xml/test_element_decl.rb
437
+ - test/xml/test_entity_decl.rb
438
+ - test/xml/test_entity_reference.rb
439
+ - test/xml/test_namespace.rb
440
+ - test/xml/test_node.rb
441
+ - test/xml/test_node_attributes.rb
442
+ - test/xml/test_node_encoding.rb
443
+ - test/xml/test_node_reparenting.rb
444
+ - test/xml/test_node_set.rb
445
+ - test/xml/test_parse_options.rb
446
+ - test/xml/test_processing_instruction.rb
447
+ - test/xml/test_reader_encoding.rb
448
+ - test/xml/test_relax_ng.rb
449
+ - test/xml/test_schema.rb
450
+ - test/xml/test_syntax_error.rb
451
+ - test/xml/test_text.rb
452
+ - test/xml/test_unparented_node.rb
453
+ - test/xml/test_xpath.rb
454
+ - test/xslt/test_custom_functions.rb
455
+ - test/xslt/test_exception_handling.rb
456
+ - lib/nokogiri/nokogiri.jar
457
+ has_rdoc: true
458
+ homepage: http://nokogiri.org
459
+ licenses: []
460
+
461
+ post_install_message:
462
+ rdoc_options:
463
+ - --main
464
+ - README.rdoc
465
+ require_paths:
466
+ - lib
467
+ required_ruby_version: !ruby/object:Gem::Requirement
468
+ none: false
469
+ requirements:
470
+ - - ">="
471
+ - !ruby/object:Gem::Version
472
+ version: "0"
473
+ required_rubygems_version: !ruby/object:Gem::Requirement
474
+ none: false
475
+ requirements:
476
+ - - ">="
477
+ - !ruby/object:Gem::Version
478
+ version: "0"
479
+ requirements:
480
+ - |
481
+ jar 'msv:isorelax', '20050913'
482
+ jar 'thaiopensource:jing', '20030619'
483
+ jar 'nekohtml:nekodtd', '0.1.11'
484
+ jar 'net.sourceforge.nekohtml:nekohtml', '1.9.15'
485
+ jar 'xerces:xercesImpl', '2.9.0'
486
+ jar('org.jruby:jruby-complete', '1.6.4').scope :provided
487
+
488
+ rubyforge_project: nokogiri
489
+ rubygems_version: 1.5.1
490
+ signing_key:
491
+ specification_version: 3
492
+ summary: "clone with maven jar dependencies: Nokogiri (\xE9\x8B\xB8) is an HTML, XML, SAX, and Reader parser"
493
+ test_files:
494
+ - test/test_convert_xpath.rb
495
+ - test/test_soap4r_sax.rb
496
+ - test/test_memory_leak.rb
497
+ - test/test_nokogiri.rb
498
+ - test/test_css_cache.rb
499
+ - test/test_reader.rb
500
+ - test/test_xslt_transforms.rb
501
+ - test/test_encoding_handler.rb
502
+ - test/css/test_nthiness.rb
503
+ - test/css/test_xpath_visitor.rb
504
+ - test/css/test_parser.rb
505
+ - test/css/test_tokenizer.rb
506
+ - test/decorators/test_slop.rb
507
+ - test/html/test_document.rb
508
+ - test/html/test_document_encoding.rb
509
+ - test/html/test_named_characters.rb
510
+ - test/html/test_document_fragment.rb
511
+ - test/html/test_node.rb
512
+ - test/html/test_builder.rb
513
+ - test/html/test_node_encoding.rb
514
+ - test/html/test_element_description.rb
515
+ - test/html/sax/test_parser_context.rb
516
+ - test/html/sax/test_parser.rb
517
+ - test/xml/test_parse_options.rb
518
+ - test/xml/test_unparented_node.rb
519
+ - test/xml/test_element_decl.rb
520
+ - test/xml/test_document.rb
521
+ - test/xml/test_dtd.rb
522
+ - test/xml/test_document_encoding.rb
523
+ - test/xml/test_entity_decl.rb
524
+ - test/xml/test_dtd_encoding.rb
525
+ - test/xml/test_document_fragment.rb
526
+ - test/xml/test_cdata.rb
527
+ - test/xml/test_text.rb
528
+ - test/xml/test_reader_encoding.rb
529
+ - test/xml/test_xpath.rb
530
+ - test/xml/test_element_content.rb
531
+ - test/xml/test_node.rb
532
+ - test/xml/test_builder.rb
533
+ - test/xml/test_schema.rb
534
+ - test/xml/test_node_set.rb
535
+ - test/xml/test_attr.rb
536
+ - test/xml/test_processing_instruction.rb
537
+ - test/xml/test_node_encoding.rb
538
+ - test/xml/test_syntax_error.rb
539
+ - test/xml/test_comment.rb
540
+ - test/xml/test_entity_reference.rb
541
+ - test/xml/test_node_reparenting.rb
542
+ - test/xml/test_attribute_decl.rb
543
+ - test/xml/test_relax_ng.rb
544
+ - test/xml/test_namespace.rb
545
+ - test/xml/test_node_attributes.rb
546
+ - test/xml/node/test_save_options.rb
547
+ - test/xml/node/test_subclass.rb
548
+ - test/xml/sax/test_push_parser.rb
549
+ - test/xml/sax/test_parser_context.rb
550
+ - test/xml/sax/test_parser.rb
551
+ - test/xslt/test_custom_functions.rb
552
+ - test/xslt/test_exception_handling.rb