nokogiri 1.4.3.1-java → 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.
- data/.gemtest +0 -0
- data/CHANGELOG.ja.rdoc +113 -0
- data/CHANGELOG.rdoc +113 -1
- data/Manifest.txt +72 -68
- data/README.ja.rdoc +4 -4
- data/README.rdoc +31 -7
- data/Rakefile +110 -132
- data/bin/nokogiri +7 -3
- data/ext/java/nokogiri/EncodingHandler.java +124 -0
- data/ext/java/nokogiri/HtmlDocument.java +119 -0
- data/ext/java/nokogiri/HtmlElementDescription.java +145 -0
- data/ext/java/nokogiri/HtmlEntityLookup.java +79 -0
- data/ext/java/nokogiri/HtmlSaxParserContext.java +259 -0
- data/ext/java/nokogiri/NokogiriService.java +590 -0
- data/ext/java/nokogiri/XmlAttr.java +180 -0
- data/ext/java/nokogiri/XmlAttributeDecl.java +130 -0
- data/ext/java/nokogiri/XmlCdata.java +84 -0
- data/ext/java/nokogiri/XmlComment.java +86 -0
- data/ext/java/nokogiri/XmlDocument.java +519 -0
- data/ext/java/nokogiri/XmlDocumentFragment.java +223 -0
- data/ext/java/nokogiri/XmlDtd.java +469 -0
- data/ext/java/nokogiri/XmlElement.java +195 -0
- data/ext/java/nokogiri/XmlElementContent.java +382 -0
- data/ext/java/nokogiri/XmlElementDecl.java +152 -0
- data/ext/java/nokogiri/XmlEntityDecl.java +162 -0
- data/ext/java/nokogiri/XmlEntityReference.java +97 -0
- data/ext/java/nokogiri/XmlNamespace.java +183 -0
- data/ext/java/nokogiri/XmlNode.java +1378 -0
- data/ext/java/nokogiri/XmlNodeSet.java +267 -0
- data/ext/java/nokogiri/XmlProcessingInstruction.java +99 -0
- data/ext/java/nokogiri/XmlReader.java +408 -0
- data/ext/java/nokogiri/XmlRelaxng.java +144 -0
- data/ext/java/nokogiri/XmlSaxParserContext.java +367 -0
- data/ext/java/nokogiri/XmlSaxPushParser.java +184 -0
- data/ext/java/nokogiri/XmlSchema.java +324 -0
- data/ext/java/nokogiri/XmlSyntaxError.java +119 -0
- data/ext/java/nokogiri/XmlText.java +119 -0
- data/ext/java/nokogiri/XmlXpathContext.java +199 -0
- data/ext/java/nokogiri/XsltStylesheet.java +197 -0
- data/ext/java/nokogiri/internals/HtmlDomParserContext.java +204 -0
- data/ext/java/nokogiri/internals/NokogiriDocumentCache.java +73 -0
- data/ext/java/nokogiri/internals/NokogiriErrorHandler.java +86 -0
- data/ext/java/nokogiri/internals/NokogiriHandler.java +327 -0
- data/ext/java/nokogiri/internals/NokogiriHelpers.java +639 -0
- data/ext/java/nokogiri/internals/NokogiriNamespaceCache.java +167 -0
- data/ext/java/nokogiri/internals/NokogiriNamespaceContext.java +130 -0
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler.java +74 -0
- data/ext/java/nokogiri/internals/NokogiriNonStrictErrorHandler4NekoHtml.java +121 -0
- data/ext/java/nokogiri/internals/NokogiriStrictErrorHandler.java +79 -0
- data/ext/java/nokogiri/internals/NokogiriXPathFunction.java +141 -0
- data/ext/java/nokogiri/internals/NokogiriXPathFunctionResolver.java +73 -0
- data/ext/java/nokogiri/internals/NokogiriXPathVariableResolver.java +67 -0
- data/ext/java/nokogiri/internals/NokogiriXsltErrorListener.java +86 -0
- data/ext/java/nokogiri/internals/ParserContext.java +276 -0
- data/ext/java/nokogiri/internals/PushInputStream.java +411 -0
- data/ext/java/nokogiri/internals/ReaderNode.java +531 -0
- data/ext/java/nokogiri/internals/SaveContextVisitor.java +567 -0
- data/ext/java/nokogiri/internals/SchemaErrorHandler.java +76 -0
- data/ext/java/nokogiri/internals/XmlDeclHandler.java +42 -0
- data/ext/java/nokogiri/internals/XmlDomParser.java +76 -0
- data/ext/java/nokogiri/internals/XmlDomParserContext.java +244 -0
- data/ext/java/nokogiri/internals/XmlSaxParser.java +65 -0
- data/ext/java/nokogiri/internals/XsltExtensionFunction.java +72 -0
- data/ext/nokogiri/depend +358 -32
- data/ext/nokogiri/extconf.rb +10 -6
- data/ext/nokogiri/nokogiri.c +23 -3
- data/ext/nokogiri/nokogiri.h +7 -2
- data/ext/nokogiri/xml_document.c +9 -0
- data/ext/nokogiri/xml_dtd.c +2 -2
- data/ext/nokogiri/xml_io.c +32 -7
- data/ext/nokogiri/xml_node.c +45 -25
- data/ext/nokogiri/xml_node_set.c +1 -1
- data/ext/nokogiri/xml_relax_ng.c +0 -7
- data/ext/nokogiri/xml_sax_parser.c +14 -7
- data/ext/nokogiri/xml_sax_parser_context.c +40 -0
- data/ext/nokogiri/xml_xpath_context.c +33 -2
- data/ext/nokogiri/xslt_stylesheet.c +128 -6
- data/lib/isorelax.jar +0 -0
- data/lib/jing.jar +0 -0
- data/lib/nekodtd.jar +0 -0
- data/lib/nekohtml.jar +0 -0
- data/lib/nokogiri/css/parser.rb +665 -70
- data/lib/nokogiri/css/parser.y +3 -1
- data/lib/nokogiri/css/parser_extras.rb +91 -0
- data/lib/nokogiri/css/tokenizer.rb +148 -3
- data/lib/nokogiri/css/tokenizer.rex +1 -1
- data/lib/nokogiri/css/xpath_visitor.rb +15 -7
- data/lib/nokogiri/css.rb +5 -3
- data/lib/nokogiri/decorators/slop.rb +5 -3
- data/lib/nokogiri/html/document.rb +142 -19
- data/lib/nokogiri/html/document_fragment.rb +19 -17
- data/lib/nokogiri/html/element_description_defaults.rb +671 -0
- data/lib/nokogiri/html/sax/parser.rb +6 -2
- data/lib/nokogiri/html.rb +1 -0
- data/lib/nokogiri/nokogiri.jar +0 -0
- data/lib/nokogiri/version.rb +76 -26
- data/lib/nokogiri/xml/attribute_decl.rb +1 -1
- data/lib/nokogiri/xml/builder.rb +7 -0
- data/lib/nokogiri/xml/document.rb +43 -2
- data/lib/nokogiri/xml/document_fragment.rb +16 -2
- data/lib/nokogiri/xml/dtd.rb +12 -1
- data/lib/nokogiri/xml/element_decl.rb +1 -1
- data/lib/nokogiri/xml/entity_decl.rb +1 -1
- data/lib/nokogiri/xml/node/save_options.rb +20 -1
- data/lib/nokogiri/xml/node.rb +198 -78
- data/lib/nokogiri/xml/node_set.rb +10 -3
- data/lib/nokogiri/xml/parse_options.rb +8 -0
- data/lib/nokogiri/xml/reader.rb +42 -6
- data/lib/nokogiri/xml/sax/document.rb +4 -2
- data/lib/nokogiri/xml/schema.rb +7 -1
- data/lib/nokogiri/xslt/stylesheet.rb +1 -1
- data/lib/nokogiri/xslt.rb +9 -5
- data/lib/nokogiri.rb +19 -25
- data/lib/xercesImpl.jar +0 -0
- data/nokogiri_help_responses.md +40 -0
- data/tasks/cross_compile.rb +130 -136
- data/tasks/nokogiri.org.rb +18 -0
- data/tasks/test.rb +2 -2
- data/test/css/test_parser.rb +29 -18
- data/test/css/test_tokenizer.rb +8 -0
- data/test/decorators/test_slop.rb +16 -0
- data/test/files/encoding.html +82 -0
- data/test/files/encoding.xhtml +84 -0
- data/test/files/metacharset.html +10 -0
- data/test/files/noencoding.html +47 -0
- data/test/helper.rb +5 -1
- data/test/html/sax/test_parser.rb +65 -3
- data/test/html/test_document.rb +75 -1
- data/test/html/test_document_encoding.rb +61 -0
- data/test/html/test_document_fragment.rb +50 -5
- data/test/html/test_element_description.rb +4 -2
- data/test/html/test_node.rb +9 -0
- data/test/test_memory_leak.rb +20 -35
- data/test/test_nokogiri.rb +14 -20
- data/test/test_reader.rb +23 -6
- data/test/test_xslt_transforms.rb +6 -2
- data/test/xml/node/test_save_options.rb +10 -2
- data/test/xml/sax/test_parser.rb +39 -8
- data/test/xml/sax/test_parser_context.rb +50 -0
- data/test/xml/sax/test_push_parser.rb +18 -1
- data/test/xml/test_attribute_decl.rb +7 -3
- data/test/xml/test_builder.rb +17 -0
- data/test/xml/test_document.rb +34 -5
- data/test/xml/test_document_fragment.rb +14 -2
- data/test/xml/test_dtd.rb +28 -3
- data/test/xml/test_element_content.rb +1 -1
- data/test/xml/test_element_decl.rb +1 -1
- data/test/xml/test_entity_decl.rb +12 -10
- data/test/xml/test_namespace.rb +7 -5
- data/test/xml/test_node.rb +65 -13
- data/test/xml/test_node_reparenting.rb +72 -31
- data/test/xml/test_node_set.rb +57 -0
- data/test/xml/test_schema.rb +5 -0
- data/test/xml/test_xpath.rb +32 -0
- data/test/xslt/test_custom_functions.rb +94 -0
- data/test/xslt/test_exception_handling.rb +37 -0
- metadata +512 -517
- data/deps.rip +0 -5
- data/ext/nokogiri/libcharset-1.dll +0 -0
- data/ext/nokogiri/libexslt.dll +0 -0
- data/ext/nokogiri/libiconv-2.dll +0 -0
- data/ext/nokogiri/libxml2.dll +0 -0
- data/ext/nokogiri/libxslt.dll +0 -0
- data/ext/nokogiri/zlib1.dll +0 -0
- data/lib/nokogiri/css/generated_parser.rb +0 -676
- data/lib/nokogiri/css/generated_tokenizer.rb +0 -146
- data/lib/nokogiri/ffi/encoding_handler.rb +0 -42
- data/lib/nokogiri/ffi/html/document.rb +0 -28
- data/lib/nokogiri/ffi/html/element_description.rb +0 -81
- data/lib/nokogiri/ffi/html/entity_lookup.rb +0 -16
- data/lib/nokogiri/ffi/html/sax/parser_context.rb +0 -38
- data/lib/nokogiri/ffi/io_callbacks.rb +0 -42
- data/lib/nokogiri/ffi/libxml.rb +0 -411
- data/lib/nokogiri/ffi/structs/common_node.rb +0 -38
- data/lib/nokogiri/ffi/structs/html_elem_desc.rb +0 -24
- data/lib/nokogiri/ffi/structs/html_entity_desc.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_alloc.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_attr.rb +0 -19
- data/lib/nokogiri/ffi/structs/xml_attribute.rb +0 -27
- data/lib/nokogiri/ffi/structs/xml_buffer.rb +0 -16
- data/lib/nokogiri/ffi/structs/xml_char_encoding_handler.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_document.rb +0 -117
- data/lib/nokogiri/ffi/structs/xml_dtd.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_element.rb +0 -26
- data/lib/nokogiri/ffi/structs/xml_element_content.rb +0 -17
- data/lib/nokogiri/ffi/structs/xml_entity.rb +0 -32
- data/lib/nokogiri/ffi/structs/xml_enumeration.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_node.rb +0 -28
- data/lib/nokogiri/ffi/structs/xml_node_set.rb +0 -53
- data/lib/nokogiri/ffi/structs/xml_notation.rb +0 -11
- data/lib/nokogiri/ffi/structs/xml_ns.rb +0 -15
- data/lib/nokogiri/ffi/structs/xml_parser_context.rb +0 -19
- data/lib/nokogiri/ffi/structs/xml_relax_ng.rb +0 -14
- data/lib/nokogiri/ffi/structs/xml_sax_handler.rb +0 -51
- data/lib/nokogiri/ffi/structs/xml_sax_push_parser_context.rb +0 -124
- data/lib/nokogiri/ffi/structs/xml_schema.rb +0 -13
- data/lib/nokogiri/ffi/structs/xml_syntax_error.rb +0 -31
- data/lib/nokogiri/ffi/structs/xml_text_reader.rb +0 -12
- data/lib/nokogiri/ffi/structs/xml_xpath_context.rb +0 -38
- data/lib/nokogiri/ffi/structs/xml_xpath_object.rb +0 -35
- data/lib/nokogiri/ffi/structs/xml_xpath_parser_context.rb +0 -20
- data/lib/nokogiri/ffi/structs/xslt_stylesheet.rb +0 -13
- data/lib/nokogiri/ffi/weak_bucket.rb +0 -40
- data/lib/nokogiri/ffi/xml/attr.rb +0 -41
- data/lib/nokogiri/ffi/xml/attribute_decl.rb +0 -27
- data/lib/nokogiri/ffi/xml/cdata.rb +0 -19
- data/lib/nokogiri/ffi/xml/comment.rb +0 -18
- data/lib/nokogiri/ffi/xml/document.rb +0 -166
- data/lib/nokogiri/ffi/xml/document_fragment.rb +0 -21
- data/lib/nokogiri/ffi/xml/dtd.rb +0 -67
- data/lib/nokogiri/ffi/xml/element_content.rb +0 -43
- data/lib/nokogiri/ffi/xml/element_decl.rb +0 -19
- data/lib/nokogiri/ffi/xml/entity_decl.rb +0 -36
- data/lib/nokogiri/ffi/xml/entity_reference.rb +0 -19
- data/lib/nokogiri/ffi/xml/namespace.rb +0 -44
- data/lib/nokogiri/ffi/xml/node.rb +0 -554
- data/lib/nokogiri/ffi/xml/node_set.rb +0 -149
- data/lib/nokogiri/ffi/xml/processing_instruction.rb +0 -20
- data/lib/nokogiri/ffi/xml/reader.rb +0 -236
- data/lib/nokogiri/ffi/xml/relax_ng.rb +0 -85
- data/lib/nokogiri/ffi/xml/sax/parser.rb +0 -135
- data/lib/nokogiri/ffi/xml/sax/parser_context.rb +0 -67
- data/lib/nokogiri/ffi/xml/sax/push_parser.rb +0 -51
- data/lib/nokogiri/ffi/xml/schema.rb +0 -109
- data/lib/nokogiri/ffi/xml/syntax_error.rb +0 -98
- data/lib/nokogiri/ffi/xml/text.rb +0 -18
- data/lib/nokogiri/ffi/xml/xpath.rb +0 -9
- data/lib/nokogiri/ffi/xml/xpath_context.rb +0 -148
- data/lib/nokogiri/ffi/xslt/stylesheet.rb +0 -53
- data/lib/nokogiri/version_warning.rb +0 -14
- data/test/ffi/test_document.rb +0 -35
data/lib/nokogiri/html.rb
CHANGED
|
Binary file
|
data/lib/nokogiri/version.rb
CHANGED
|
@@ -1,38 +1,88 @@
|
|
|
1
1
|
module Nokogiri
|
|
2
2
|
# The version of Nokogiri you are using
|
|
3
|
-
VERSION = '1.
|
|
3
|
+
VERSION = '1.5.0'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
5
|
+
class VersionInfo # :nodoc:
|
|
6
|
+
def jruby?
|
|
7
|
+
::JRUBY_VERSION if RUBY_PLATFORM == "java"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def engine
|
|
11
|
+
defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'mri'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def loaded_parser_version
|
|
15
|
+
LIBXML_PARSER_VERSION.scan(/^(.*)(..)(..)$/).first.collect{ |j|
|
|
16
|
+
j.to_i
|
|
17
|
+
}.join(".")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def compiled_parser_version
|
|
21
|
+
LIBXML_VERSION
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def libxml2?
|
|
25
|
+
defined?(LIBXML_VERSION)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def warnings
|
|
29
|
+
return [] unless libxml2?
|
|
30
|
+
|
|
31
|
+
if compiled_parser_version != loaded_parser_version
|
|
32
|
+
["Nokogiri was built against LibXML version #{compiled_parser_version}, but has dynamically loaded #{loaded_parser_version}"]
|
|
33
|
+
else
|
|
34
|
+
[]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def to_hash
|
|
39
|
+
hash_info = {}
|
|
40
|
+
hash_info['warnings'] = []
|
|
41
|
+
hash_info['nokogiri'] = Nokogiri::VERSION
|
|
42
|
+
hash_info['ruby'] = {}
|
|
43
|
+
hash_info['ruby']['version'] = ::RUBY_VERSION
|
|
44
|
+
hash_info['ruby']['platform'] = ::RUBY_PLATFORM
|
|
45
|
+
hash_info['ruby']['description'] = ::RUBY_DESCRIPTION
|
|
46
|
+
hash_info['ruby']['engine'] = engine
|
|
47
|
+
hash_info['ruby']['jruby'] = jruby? if jruby?
|
|
48
|
+
|
|
49
|
+
if libxml2?
|
|
50
|
+
hash_info['libxml'] = {}
|
|
51
|
+
hash_info['libxml']['binding'] = 'extension'
|
|
52
|
+
hash_info['libxml']['compiled'] = compiled_parser_version
|
|
53
|
+
hash_info['libxml']['loaded'] = loaded_parser_version
|
|
54
|
+
hash_info['warnings'] = warnings
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
hash_info
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def to_markdown
|
|
61
|
+
begin
|
|
62
|
+
require 'psych'
|
|
63
|
+
rescue LoadError
|
|
64
|
+
end
|
|
65
|
+
require 'yaml'
|
|
66
|
+
"# Nokogiri (#{Nokogiri::VERSION})\n" +
|
|
67
|
+
YAML.dump(to_hash).each_line.map { |line| " #{line}" }.join
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# FIXME: maybe switch to singleton?
|
|
71
|
+
@@instance = new
|
|
72
|
+
@@instance.warnings.each do |warning|
|
|
23
73
|
warn "WARNING: #{warning}"
|
|
24
74
|
end
|
|
75
|
+
def self.instance; @@instance; end
|
|
25
76
|
end
|
|
26
77
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
end
|
|
78
|
+
# More complete version information about libxml
|
|
79
|
+
VERSION_INFO = VersionInfo.instance.to_hash
|
|
30
80
|
|
|
31
|
-
def self.
|
|
32
|
-
|
|
81
|
+
def self.uses_libxml? # :nodoc:
|
|
82
|
+
VersionInfo.instance.libxml2?
|
|
33
83
|
end
|
|
34
84
|
|
|
35
|
-
def self.
|
|
36
|
-
|
|
85
|
+
def self.jruby? # :nodoc:
|
|
86
|
+
VersionInfo.instance.jruby?
|
|
37
87
|
end
|
|
38
88
|
end
|
|
@@ -8,7 +8,7 @@ module Nokogiri
|
|
|
8
8
|
undef_method :content
|
|
9
9
|
undef_method :namespace
|
|
10
10
|
undef_method :namespace_definitions
|
|
11
|
-
undef_method :line
|
|
11
|
+
undef_method :line if method_defined?(:line)
|
|
12
12
|
|
|
13
13
|
def inspect
|
|
14
14
|
"#<#{self.class.name}:#{sprintf("0x%x", object_id)} #{to_s.inspect}>"
|
data/lib/nokogiri/xml/builder.rb
CHANGED
|
@@ -327,6 +327,13 @@ module Nokogiri
|
|
|
327
327
|
###
|
|
328
328
|
# Convert this Builder object to XML
|
|
329
329
|
def to_xml(*args)
|
|
330
|
+
if Nokogiri.jruby?
|
|
331
|
+
options = args.first.is_a?(Hash) ? args.shift : {}
|
|
332
|
+
if !options[:save_with]
|
|
333
|
+
options[:save_with] = Node::SaveOptions::AS_BUILDER
|
|
334
|
+
end
|
|
335
|
+
args.insert(0, options)
|
|
336
|
+
end
|
|
330
337
|
@doc.to_xml(*args)
|
|
331
338
|
end
|
|
332
339
|
|
|
@@ -9,7 +9,7 @@ module Nokogiri
|
|
|
9
9
|
# Nokogiri::XML::Node#xpath
|
|
10
10
|
class Document < Nokogiri::XML::Node
|
|
11
11
|
##
|
|
12
|
-
# Parse an XML file. +
|
|
12
|
+
# Parse an XML file. +string_or_io+ may be a String, or any object that
|
|
13
13
|
# responds to _read_ and _close_ such as an IO, or StringIO.
|
|
14
14
|
# +url+ is resource where this document is located. +encoding+ is the
|
|
15
15
|
# encoding that should be used when processing the document. +options+
|
|
@@ -113,6 +113,13 @@ module Nokogiri
|
|
|
113
113
|
# </root>
|
|
114
114
|
#
|
|
115
115
|
# The hash returned will look like this: { 'xmlns:foo' => 'bar' }
|
|
116
|
+
#
|
|
117
|
+
# Non-prefixed default namespaces (as in "xmlns=") are not included
|
|
118
|
+
# in the hash.
|
|
119
|
+
#
|
|
120
|
+
# Note this is a very expensive operation in current implementation, as it
|
|
121
|
+
# traverses the entire graph, and also has to bring each node accross the
|
|
122
|
+
# libxml bridge into a ruby object.
|
|
116
123
|
def collect_namespaces
|
|
117
124
|
ns = {}
|
|
118
125
|
traverse { |j| ns.merge!(j.namespaces) }
|
|
@@ -134,7 +141,21 @@ module Nokogiri
|
|
|
134
141
|
end
|
|
135
142
|
|
|
136
143
|
##
|
|
137
|
-
# Explore a document with shortcut methods.
|
|
144
|
+
# Explore a document with shortcut methods. See Nokogiri::Slop for details.
|
|
145
|
+
#
|
|
146
|
+
# Note that any nodes that have been instantiated before #slop!
|
|
147
|
+
# is called will not be decorated with sloppy behavior. So, if you're in
|
|
148
|
+
# irb, the preferred idiom is:
|
|
149
|
+
#
|
|
150
|
+
# irb> doc = Nokogiri::Slop my_markup
|
|
151
|
+
#
|
|
152
|
+
# and not
|
|
153
|
+
#
|
|
154
|
+
# irb> doc = Nokogiri::HTML my_markup
|
|
155
|
+
# ... followed by irb's implicit inspect (and therefore instantiation of every node) ...
|
|
156
|
+
# irb> doc.slop!
|
|
157
|
+
# ... which does absolutely nothing.
|
|
158
|
+
#
|
|
138
159
|
def slop!
|
|
139
160
|
unless decorators(XML::Node).include? Nokogiri::Decorators::Slop
|
|
140
161
|
decorators(XML::Node) << Nokogiri::Decorators::Slop
|
|
@@ -184,7 +205,27 @@ module Nokogiri
|
|
|
184
205
|
end
|
|
185
206
|
alias :<< :add_child
|
|
186
207
|
|
|
208
|
+
##
|
|
209
|
+
# +JRuby+
|
|
210
|
+
# Wraps Java's org.w3c.dom.document and returns Nokogiri::XML::Document
|
|
211
|
+
def self.wrap document
|
|
212
|
+
raise "JRuby only method" unless Nokogiri.jruby?
|
|
213
|
+
return wrapJavaDocument(document)
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
##
|
|
217
|
+
# +JRuby+
|
|
218
|
+
# Returns Java's org.w3c.dom.document of this Document.
|
|
219
|
+
def to_java
|
|
220
|
+
raise "JRuby only method" unless Nokogiri.jruby?
|
|
221
|
+
return toJavaDocument()
|
|
222
|
+
end
|
|
223
|
+
|
|
187
224
|
private
|
|
225
|
+
def implied_xpath_context
|
|
226
|
+
"/"
|
|
227
|
+
end
|
|
228
|
+
|
|
188
229
|
def inspect_attributes
|
|
189
230
|
[:name, :children]
|
|
190
231
|
end
|
|
@@ -11,9 +11,9 @@ module Nokogiri
|
|
|
11
11
|
return self unless tags
|
|
12
12
|
|
|
13
13
|
children = if ctx
|
|
14
|
-
ctx.parse(tags
|
|
14
|
+
ctx.parse(tags)
|
|
15
15
|
else
|
|
16
|
-
XML::Document.parse("<root>#{tags
|
|
16
|
+
XML::Document.parse("<root>#{tags}</root>") \
|
|
17
17
|
.xpath("/root/node()")
|
|
18
18
|
end
|
|
19
19
|
children.each { |child| child.parent = self }
|
|
@@ -35,6 +35,13 @@ module Nokogiri
|
|
|
35
35
|
# Convert this DocumentFragment to html
|
|
36
36
|
# See Nokogiri::XML::NodeSet#to_html
|
|
37
37
|
def to_html *args
|
|
38
|
+
if Nokogiri.jruby?
|
|
39
|
+
options = args.first.is_a?(Hash) ? args.shift : {}
|
|
40
|
+
if !options[:save_with]
|
|
41
|
+
options[:save_with] = Node::SaveOptions::NO_DECLARATION | Node::SaveOptions::NO_EMPTY_TAGS | Node::SaveOptions::AS_HTML
|
|
42
|
+
end
|
|
43
|
+
args.insert(0, options)
|
|
44
|
+
end
|
|
38
45
|
children.to_html(*args)
|
|
39
46
|
end
|
|
40
47
|
|
|
@@ -42,6 +49,13 @@ module Nokogiri
|
|
|
42
49
|
# Convert this DocumentFragment to xhtml
|
|
43
50
|
# See Nokogiri::XML::NodeSet#to_xhtml
|
|
44
51
|
def to_xhtml *args
|
|
52
|
+
if Nokogiri.jruby?
|
|
53
|
+
options = args.first.is_a?(Hash) ? args.shift : {}
|
|
54
|
+
if !options[:save_with]
|
|
55
|
+
options[:save_with] = Node::SaveOptions::NO_DECLARATION | Node::SaveOptions::NO_EMPTY_TAGS | Node::SaveOptions::AS_XHTML
|
|
56
|
+
end
|
|
57
|
+
args.insert(0, options)
|
|
58
|
+
end
|
|
45
59
|
children.to_xhtml(*args)
|
|
46
60
|
end
|
|
47
61
|
|
data/lib/nokogiri/xml/dtd.rb
CHANGED
|
@@ -2,10 +2,21 @@ module Nokogiri
|
|
|
2
2
|
module XML
|
|
3
3
|
class DTD < Nokogiri::XML::Node
|
|
4
4
|
undef_method :attribute_nodes
|
|
5
|
+
undef_method :values
|
|
5
6
|
undef_method :content
|
|
6
7
|
undef_method :namespace
|
|
7
8
|
undef_method :namespace_definitions
|
|
8
|
-
undef_method :line
|
|
9
|
+
undef_method :line if method_defined?(:line)
|
|
10
|
+
|
|
11
|
+
def keys
|
|
12
|
+
attributes.keys
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def each &block
|
|
16
|
+
attributes.each { |key, value|
|
|
17
|
+
block.call([key, value])
|
|
18
|
+
}
|
|
19
|
+
end
|
|
9
20
|
end
|
|
10
21
|
end
|
|
11
22
|
end
|
|
@@ -3,7 +3,7 @@ module Nokogiri
|
|
|
3
3
|
class ElementDecl < Nokogiri::XML::Node
|
|
4
4
|
undef_method :namespace
|
|
5
5
|
undef_method :namespace_definitions
|
|
6
|
-
undef_method :line
|
|
6
|
+
undef_method :line if method_defined?(:line)
|
|
7
7
|
|
|
8
8
|
def inspect
|
|
9
9
|
"#<#{self.class.name}:#{sprintf("0x%x", object_id)} #{to_s.inspect}>"
|
|
@@ -6,7 +6,7 @@ module Nokogiri
|
|
|
6
6
|
class SaveOptions
|
|
7
7
|
# Format serialized xml
|
|
8
8
|
FORMAT = 1
|
|
9
|
-
# Do not include
|
|
9
|
+
# Do not include declarations
|
|
10
10
|
NO_DECLARATION = 2
|
|
11
11
|
# Do not include empty tags
|
|
12
12
|
NO_EMPTY_TAGS = 4
|
|
@@ -19,11 +19,28 @@ module Nokogiri
|
|
|
19
19
|
# Save as HTML
|
|
20
20
|
AS_HTML = 64
|
|
21
21
|
|
|
22
|
+
if Nokogiri.jruby?
|
|
23
|
+
# Save builder created document
|
|
24
|
+
AS_BUILDER = 128
|
|
25
|
+
# the default for XML documents
|
|
26
|
+
DEFAULT_XML = AS_XML # https://github.com/tenderlove/nokogiri/issues/#issue/415
|
|
27
|
+
# the default for HTML document
|
|
28
|
+
DEFAULT_HTML = NO_DECLARATION | NO_EMPTY_TAGS | AS_HTML
|
|
29
|
+
else
|
|
30
|
+
# the default for XML documents
|
|
31
|
+
DEFAULT_XML = FORMAT | AS_XML
|
|
32
|
+
# the default for HTML document
|
|
33
|
+
DEFAULT_HTML = FORMAT | NO_DECLARATION | NO_EMPTY_TAGS | AS_HTML
|
|
34
|
+
end
|
|
35
|
+
# the default for XHTML document
|
|
36
|
+
DEFAULT_XHTML = FORMAT | NO_DECLARATION | NO_EMPTY_TAGS | AS_XHTML
|
|
37
|
+
|
|
22
38
|
# Integer representation of the SaveOptions
|
|
23
39
|
attr_reader :options
|
|
24
40
|
|
|
25
41
|
# Create a new SaveOptions object with +options+
|
|
26
42
|
def initialize options = 0; @options = options; end
|
|
43
|
+
|
|
27
44
|
constants.each do |constant|
|
|
28
45
|
class_eval %{
|
|
29
46
|
def #{constant.downcase}
|
|
@@ -36,6 +53,8 @@ module Nokogiri
|
|
|
36
53
|
end
|
|
37
54
|
}
|
|
38
55
|
end
|
|
56
|
+
|
|
57
|
+
alias :to_i :options
|
|
39
58
|
end
|
|
40
59
|
end
|
|
41
60
|
end
|