libxml-ruby 5.0.4 → 5.0.5
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.
- checksums.yaml +4 -4
- data/HISTORY +10 -6
- data/README.rdoc +1 -1
- data/ext/libxml/extconf.rb +5 -0
- data/ext/libxml/ruby_xml.c +556 -556
- data/ext/libxml/ruby_xml_attributes.h +17 -17
- data/ext/libxml/ruby_xml_document.c +1129 -1129
- data/ext/libxml/ruby_xml_dtd.c +257 -257
- data/ext/libxml/ruby_xml_encoding.c +250 -250
- data/ext/libxml/ruby_xml_error.c +1003 -1003
- data/ext/libxml/ruby_xml_error.h +14 -14
- data/ext/libxml/ruby_xml_html_parser_context.c +351 -351
- data/ext/libxml/ruby_xml_input_cbg.c +188 -188
- data/ext/libxml/ruby_xml_namespace.c +151 -151
- data/ext/libxml/ruby_xml_parser.h +10 -10
- data/ext/libxml/ruby_xml_parser_context.c +1009 -1009
- data/ext/libxml/ruby_xml_parser_options.c +74 -74
- data/ext/libxml/ruby_xml_parser_options.h +10 -10
- data/ext/libxml/ruby_xml_sax2_handler.c +326 -326
- data/ext/libxml/ruby_xml_sax_parser.c +108 -108
- data/ext/libxml/ruby_xml_version.h +9 -9
- data/lib/libxml/attr.rb +122 -122
- data/lib/libxml/attr_decl.rb +80 -80
- data/lib/libxml/attributes.rb +13 -13
- data/lib/libxml/document.rb +194 -194
- data/lib/libxml/error.rb +95 -95
- data/lib/libxml/hpricot.rb +77 -77
- data/lib/libxml/html_parser.rb +96 -96
- data/lib/libxml/namespace.rb +61 -61
- data/lib/libxml/namespaces.rb +37 -37
- data/lib/libxml/node.rb +323 -323
- data/lib/libxml/parser.rb +102 -102
- data/lib/libxml/sax_callbacks.rb +179 -179
- data/lib/libxml/sax_parser.rb +40 -40
- data/lib/libxml/tree.rb +28 -28
- data/lib/libxml.rb +4 -4
- data/lib/xml/libxml.rb +10 -10
- data/lib/xml.rb +13 -13
- data/libxml-ruby.gemspec +50 -49
- data/test/test_document.rb +140 -140
- data/test/test_document_write.rb +142 -142
- data/test/test_dtd.rb +126 -126
- data/test/test_encoding.rb +126 -126
- data/test/test_error.rb +194 -194
- data/test/test_helper.rb +20 -20
- data/test/test_namespace.rb +58 -58
- data/test/test_node.rb +235 -235
- data/test/test_node_write.rb +93 -93
- data/test/test_parser.rb +333 -333
- data/test/test_reader.rb +364 -364
- data/test/test_xml.rb +168 -168
- metadata +5 -4
data/lib/libxml/parser.rb
CHANGED
@@ -1,103 +1,103 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module LibXML
|
4
|
-
module XML
|
5
|
-
class Parser
|
6
|
-
# call-seq:
|
7
|
-
# XML::Parser.document(document) -> XML::Parser
|
8
|
-
#
|
9
|
-
# Creates a new parser for the specified document.
|
10
|
-
#
|
11
|
-
# Parameters:
|
12
|
-
#
|
13
|
-
# document - A preparsed document.
|
14
|
-
def self.document(doc)
|
15
|
-
context = XML::Parser::Context.document(doc)
|
16
|
-
self.new(context)
|
17
|
-
end
|
18
|
-
|
19
|
-
# call-seq:
|
20
|
-
# XML::Parser.file(path) -> XML::Parser
|
21
|
-
# XML::Parser.file(path, encoding: XML::Encoding::UTF_8,
|
22
|
-
# options: XML::Parser::Options::NOENT) -> XML::Parser
|
23
|
-
#
|
24
|
-
# Creates a new parser for the specified file or uri.
|
25
|
-
#
|
26
|
-
# Parameters:
|
27
|
-
#
|
28
|
-
# path - Path to file
|
29
|
-
# base_uri - The base url for the parsed document.
|
30
|
-
# encoding - The document encoding, defaults to nil. Valid values
|
31
|
-
# are the encoding constants defined on XML::Encoding.
|
32
|
-
# options - Parser options. Valid values are the constants defined on
|
33
|
-
# XML::Parser::Options. Mutliple options can be combined
|
34
|
-
# by using Bitwise OR (|).
|
35
|
-
def self.file(path, base_uri: nil, encoding: nil, options: nil)
|
36
|
-
context = XML::Parser::Context.file(path)
|
37
|
-
context.base_uri = base_uri if base_uri
|
38
|
-
context.encoding = encoding if encoding
|
39
|
-
context.options = options if options
|
40
|
-
self.new(context)
|
41
|
-
end
|
42
|
-
|
43
|
-
# call-seq:
|
44
|
-
# XML::Parser.io(io) -> XML::Parser
|
45
|
-
# XML::Parser.io(io, encoding: XML::Encoding::UTF_8,
|
46
|
-
# options: XML::Parser::Options::NOENT
|
47
|
-
# base_uri: "http://libxml.org") -> XML::Parser
|
48
|
-
#
|
49
|
-
# Creates a new parser for the specified io object.
|
50
|
-
#
|
51
|
-
# Parameters:
|
52
|
-
#
|
53
|
-
# io - io object that contains the xml to parser
|
54
|
-
# base_uri - The base url for the parsed document.
|
55
|
-
# encoding - The document encoding, defaults to nil. Valid values
|
56
|
-
# are the encoding constants defined on XML::Encoding.
|
57
|
-
# options - Parser options. Valid values are the constants defined on
|
58
|
-
# XML::Parser::Options. Mutliple options can be combined
|
59
|
-
# by using Bitwise OR (|).
|
60
|
-
def self.io(io, base_uri: nil, encoding: nil, options: nil)
|
61
|
-
context = XML::Parser::Context.io(io)
|
62
|
-
context.base_uri = base_uri if base_uri
|
63
|
-
context.encoding = encoding if encoding
|
64
|
-
context.options = options if options
|
65
|
-
self.new(context)
|
66
|
-
end
|
67
|
-
|
68
|
-
# call-seq:
|
69
|
-
# XML::Parser.string(string)
|
70
|
-
# XML::Parser.string(string, encoding: XML::Encoding::UTF_8,
|
71
|
-
# options: XML::Parser::Options::NOENT
|
72
|
-
# base_uri: "http://libxml.org") -> XML::Parser
|
73
|
-
#
|
74
|
-
# Creates a new parser by parsing the specified string.
|
75
|
-
#
|
76
|
-
# Parameters:
|
77
|
-
#
|
78
|
-
# string - The string to parse
|
79
|
-
# base_uri - The base url for the parsed document.
|
80
|
-
# encoding - The document encoding, defaults to nil. Valid values
|
81
|
-
# are the encoding constants defined on XML::Encoding.
|
82
|
-
# options - Parser options. Valid values are the constants defined on
|
83
|
-
# XML::Parser::Options. Multiple options can be combined
|
84
|
-
# by using Bitwise OR (|).
|
85
|
-
def self.string(string, base_uri: nil, encoding: nil, options: nil)
|
86
|
-
context = XML::Parser::Context.string(string)
|
87
|
-
context.base_uri = base_uri if base_uri
|
88
|
-
context.encoding = encoding if encoding
|
89
|
-
context.options = options if options
|
90
|
-
self.new(context)
|
91
|
-
end
|
92
|
-
|
93
|
-
def self.register_error_handler(proc)
|
94
|
-
warn('Parser.register_error_handler is deprecated. Use Error.set_handler instead')
|
95
|
-
if proc.nil?
|
96
|
-
Error.reset_handler
|
97
|
-
else
|
98
|
-
Error.set_handler(&proc)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module LibXML
|
4
|
+
module XML
|
5
|
+
class Parser
|
6
|
+
# call-seq:
|
7
|
+
# XML::Parser.document(document) -> XML::Parser
|
8
|
+
#
|
9
|
+
# Creates a new parser for the specified document.
|
10
|
+
#
|
11
|
+
# Parameters:
|
12
|
+
#
|
13
|
+
# document - A preparsed document.
|
14
|
+
def self.document(doc)
|
15
|
+
context = XML::Parser::Context.document(doc)
|
16
|
+
self.new(context)
|
17
|
+
end
|
18
|
+
|
19
|
+
# call-seq:
|
20
|
+
# XML::Parser.file(path) -> XML::Parser
|
21
|
+
# XML::Parser.file(path, encoding: XML::Encoding::UTF_8,
|
22
|
+
# options: XML::Parser::Options::NOENT) -> XML::Parser
|
23
|
+
#
|
24
|
+
# Creates a new parser for the specified file or uri.
|
25
|
+
#
|
26
|
+
# Parameters:
|
27
|
+
#
|
28
|
+
# path - Path to file
|
29
|
+
# base_uri - The base url for the parsed document.
|
30
|
+
# encoding - The document encoding, defaults to nil. Valid values
|
31
|
+
# are the encoding constants defined on XML::Encoding.
|
32
|
+
# options - Parser options. Valid values are the constants defined on
|
33
|
+
# XML::Parser::Options. Mutliple options can be combined
|
34
|
+
# by using Bitwise OR (|).
|
35
|
+
def self.file(path, base_uri: nil, encoding: nil, options: nil)
|
36
|
+
context = XML::Parser::Context.file(path)
|
37
|
+
context.base_uri = base_uri if base_uri
|
38
|
+
context.encoding = encoding if encoding
|
39
|
+
context.options = options if options
|
40
|
+
self.new(context)
|
41
|
+
end
|
42
|
+
|
43
|
+
# call-seq:
|
44
|
+
# XML::Parser.io(io) -> XML::Parser
|
45
|
+
# XML::Parser.io(io, encoding: XML::Encoding::UTF_8,
|
46
|
+
# options: XML::Parser::Options::NOENT
|
47
|
+
# base_uri: "http://libxml.org") -> XML::Parser
|
48
|
+
#
|
49
|
+
# Creates a new parser for the specified io object.
|
50
|
+
#
|
51
|
+
# Parameters:
|
52
|
+
#
|
53
|
+
# io - io object that contains the xml to parser
|
54
|
+
# base_uri - The base url for the parsed document.
|
55
|
+
# encoding - The document encoding, defaults to nil. Valid values
|
56
|
+
# are the encoding constants defined on XML::Encoding.
|
57
|
+
# options - Parser options. Valid values are the constants defined on
|
58
|
+
# XML::Parser::Options. Mutliple options can be combined
|
59
|
+
# by using Bitwise OR (|).
|
60
|
+
def self.io(io, base_uri: nil, encoding: nil, options: nil)
|
61
|
+
context = XML::Parser::Context.io(io)
|
62
|
+
context.base_uri = base_uri if base_uri
|
63
|
+
context.encoding = encoding if encoding
|
64
|
+
context.options = options if options
|
65
|
+
self.new(context)
|
66
|
+
end
|
67
|
+
|
68
|
+
# call-seq:
|
69
|
+
# XML::Parser.string(string)
|
70
|
+
# XML::Parser.string(string, encoding: XML::Encoding::UTF_8,
|
71
|
+
# options: XML::Parser::Options::NOENT
|
72
|
+
# base_uri: "http://libxml.org") -> XML::Parser
|
73
|
+
#
|
74
|
+
# Creates a new parser by parsing the specified string.
|
75
|
+
#
|
76
|
+
# Parameters:
|
77
|
+
#
|
78
|
+
# string - The string to parse
|
79
|
+
# base_uri - The base url for the parsed document.
|
80
|
+
# encoding - The document encoding, defaults to nil. Valid values
|
81
|
+
# are the encoding constants defined on XML::Encoding.
|
82
|
+
# options - Parser options. Valid values are the constants defined on
|
83
|
+
# XML::Parser::Options. Multiple options can be combined
|
84
|
+
# by using Bitwise OR (|).
|
85
|
+
def self.string(string, base_uri: nil, encoding: nil, options: nil)
|
86
|
+
context = XML::Parser::Context.string(string)
|
87
|
+
context.base_uri = base_uri if base_uri
|
88
|
+
context.encoding = encoding if encoding
|
89
|
+
context.options = options if options
|
90
|
+
self.new(context)
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.register_error_handler(proc)
|
94
|
+
warn('Parser.register_error_handler is deprecated. Use Error.set_handler instead')
|
95
|
+
if proc.nil?
|
96
|
+
Error.reset_handler
|
97
|
+
else
|
98
|
+
Error.set_handler(&proc)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
103
|
end
|
data/lib/libxml/sax_callbacks.rb
CHANGED
@@ -1,180 +1,180 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module LibXML
|
4
|
-
module XML
|
5
|
-
class SaxParser
|
6
|
-
module Callbacks
|
7
|
-
# Called for a CDATA block event.
|
8
|
-
def on_cdata_block(cdata)
|
9
|
-
end
|
10
|
-
|
11
|
-
# Called for a characters event.
|
12
|
-
def on_characters(chars)
|
13
|
-
end
|
14
|
-
|
15
|
-
# Called for a comment event.
|
16
|
-
def on_comment(msg)
|
17
|
-
end
|
18
|
-
|
19
|
-
# Called for a end document event.
|
20
|
-
def on_end_document
|
21
|
-
end
|
22
|
-
|
23
|
-
# Called for a end element event.
|
24
|
-
def on_end_element_ns(name, prefix, uri)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Called for parser errors.
|
28
|
-
def on_error(msg)
|
29
|
-
end
|
30
|
-
|
31
|
-
# Called for an external subset event.
|
32
|
-
def on_external_subset(name, external_id, system_id)
|
33
|
-
end
|
34
|
-
|
35
|
-
# Called for an external subset notification event.
|
36
|
-
def on_has_external_subset
|
37
|
-
end
|
38
|
-
|
39
|
-
# Called for an internal subset notification event.
|
40
|
-
def on_has_internal_subset
|
41
|
-
end
|
42
|
-
|
43
|
-
# Called for an internal subset event.
|
44
|
-
def on_internal_subset(name, external_id, system_id)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Called for 'is standalone' event.
|
48
|
-
def on_is_standalone
|
49
|
-
end
|
50
|
-
|
51
|
-
# Called for an processing instruction event.
|
52
|
-
def on_processing_instruction(target, data)
|
53
|
-
end
|
54
|
-
|
55
|
-
# Called for a reference event.
|
56
|
-
def on_reference(name)
|
57
|
-
end
|
58
|
-
|
59
|
-
# Called for a start document event.
|
60
|
-
def on_start_document
|
61
|
-
end
|
62
|
-
|
63
|
-
# Called for a start element event.
|
64
|
-
def on_start_element_ns(name, attributes, prefix, uri, namespaces)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
module VerboseCallbacks
|
69
|
-
# Called for a CDATA block event.
|
70
|
-
def on_cdata_block(cdata)
|
71
|
-
STDOUT << "on_cdata_block" << "\n" <<
|
72
|
-
" cdata " << cdata << "\n"
|
73
|
-
STDOUT.flush
|
74
|
-
end
|
75
|
-
|
76
|
-
# Called for a characters event.
|
77
|
-
def on_characters(chars)
|
78
|
-
STDOUT << "on_characters" << "\n" <<
|
79
|
-
" chars " << chars << "\n"
|
80
|
-
STDOUT.flush
|
81
|
-
end
|
82
|
-
|
83
|
-
# Called for a comment event.
|
84
|
-
def on_comment(comment)
|
85
|
-
STDOUT << "on_comment" << "\n" <<
|
86
|
-
" comment: " << comment << "\n"
|
87
|
-
STDOUT.flush
|
88
|
-
end
|
89
|
-
|
90
|
-
# Called for a end document event.
|
91
|
-
def on_end_document
|
92
|
-
STDOUT << "on_end_document\n"
|
93
|
-
STDOUT.flush
|
94
|
-
end
|
95
|
-
|
96
|
-
# Called for a end element event.
|
97
|
-
def on_end_element_ns(name, prefix, uri)
|
98
|
-
STDOUT << "on_end_element_ns" << "\n" <<
|
99
|
-
" name: " << name << "\n" <<
|
100
|
-
" prefix: " << prefix << "\n" <<
|
101
|
-
" uri: " << uri << "\n"
|
102
|
-
STDOUT.flush
|
103
|
-
end
|
104
|
-
|
105
|
-
# Called for parser errors.
|
106
|
-
def on_error(error)
|
107
|
-
STDOUT << "on_error" << "\n"
|
108
|
-
" error " << error << "\n"
|
109
|
-
STDOUT.flush
|
110
|
-
end
|
111
|
-
|
112
|
-
# Called for an external subset event.
|
113
|
-
def on_external_subset(name, external_id, system_id)
|
114
|
-
STDOUT << "on_external_subset" << "\n"
|
115
|
-
" external_id " << external_id << "\n" <<
|
116
|
-
" system_id " << system_id << "\n"
|
117
|
-
STDOUT.flush
|
118
|
-
end
|
119
|
-
|
120
|
-
# Called for an external subset notification event.
|
121
|
-
def on_has_external_subset
|
122
|
-
STDOUT << "on_has_internal_subset\n"
|
123
|
-
STDOUT.flush
|
124
|
-
end
|
125
|
-
|
126
|
-
# Called for an internal subset notification event.
|
127
|
-
def on_has_internal_subset
|
128
|
-
STDOUT << "on_has_internal_subset\n"
|
129
|
-
STDOUT.flush
|
130
|
-
end
|
131
|
-
|
132
|
-
# Called for an internal subset event.
|
133
|
-
def on_internal_subset(name, external_id, system_id)
|
134
|
-
STDOUT << "on_internal_subset" << "\n"
|
135
|
-
" external_id " << external_id << "\n" <<
|
136
|
-
" system_id " << system_id << "\n"
|
137
|
-
STDOUT.flush
|
138
|
-
end
|
139
|
-
|
140
|
-
# Called for 'is standalone' event.
|
141
|
-
def on_is_standalone
|
142
|
-
STDOUT << "on_is_standalone\n"
|
143
|
-
STDOUT.flush
|
144
|
-
end
|
145
|
-
|
146
|
-
# Called for an processing instruction event.
|
147
|
-
def on_processing_instruction(target, data)
|
148
|
-
STDOUT << "on_characters" << "\n"
|
149
|
-
" target: " << target << "\n" <<
|
150
|
-
" data: " << data << "\n"
|
151
|
-
STDOUT.flush
|
152
|
-
end
|
153
|
-
|
154
|
-
# Called for a reference event.
|
155
|
-
def on_reference(name)
|
156
|
-
STDOUT << "on_reference:" << "\n" <<
|
157
|
-
" name:" << name << "\n"
|
158
|
-
STDOUT.flush
|
159
|
-
end
|
160
|
-
|
161
|
-
# Called for a start document event.
|
162
|
-
def on_start_document
|
163
|
-
STDOUT << "on_start_document\n"
|
164
|
-
STDOUT.flush
|
165
|
-
end
|
166
|
-
|
167
|
-
# Called for a start element event.
|
168
|
-
def on_start_element_ns(name, attributes, prefix, uri, namespaces)
|
169
|
-
STDOUT << "on_start_element_ns" << "\n" <<
|
170
|
-
" name: " << name << "\n" <<
|
171
|
-
" attr: " << (attributes || Hash.new).inspect << "\n" <<
|
172
|
-
" prefix: " << prefix << "\n" <<
|
173
|
-
" uri: " << uri << "\n" <<
|
174
|
-
" ns_defs: " << (namespaces || Hash.new).inspect << "\n"
|
175
|
-
STDOUT.flush
|
176
|
-
end
|
177
|
-
end
|
178
|
-
end
|
179
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module LibXML
|
4
|
+
module XML
|
5
|
+
class SaxParser
|
6
|
+
module Callbacks
|
7
|
+
# Called for a CDATA block event.
|
8
|
+
def on_cdata_block(cdata)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Called for a characters event.
|
12
|
+
def on_characters(chars)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Called for a comment event.
|
16
|
+
def on_comment(msg)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Called for a end document event.
|
20
|
+
def on_end_document
|
21
|
+
end
|
22
|
+
|
23
|
+
# Called for a end element event.
|
24
|
+
def on_end_element_ns(name, prefix, uri)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Called for parser errors.
|
28
|
+
def on_error(msg)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Called for an external subset event.
|
32
|
+
def on_external_subset(name, external_id, system_id)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Called for an external subset notification event.
|
36
|
+
def on_has_external_subset
|
37
|
+
end
|
38
|
+
|
39
|
+
# Called for an internal subset notification event.
|
40
|
+
def on_has_internal_subset
|
41
|
+
end
|
42
|
+
|
43
|
+
# Called for an internal subset event.
|
44
|
+
def on_internal_subset(name, external_id, system_id)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Called for 'is standalone' event.
|
48
|
+
def on_is_standalone
|
49
|
+
end
|
50
|
+
|
51
|
+
# Called for an processing instruction event.
|
52
|
+
def on_processing_instruction(target, data)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Called for a reference event.
|
56
|
+
def on_reference(name)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Called for a start document event.
|
60
|
+
def on_start_document
|
61
|
+
end
|
62
|
+
|
63
|
+
# Called for a start element event.
|
64
|
+
def on_start_element_ns(name, attributes, prefix, uri, namespaces)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
module VerboseCallbacks
|
69
|
+
# Called for a CDATA block event.
|
70
|
+
def on_cdata_block(cdata)
|
71
|
+
STDOUT << "on_cdata_block" << "\n" <<
|
72
|
+
" cdata " << cdata << "\n"
|
73
|
+
STDOUT.flush
|
74
|
+
end
|
75
|
+
|
76
|
+
# Called for a characters event.
|
77
|
+
def on_characters(chars)
|
78
|
+
STDOUT << "on_characters" << "\n" <<
|
79
|
+
" chars " << chars << "\n"
|
80
|
+
STDOUT.flush
|
81
|
+
end
|
82
|
+
|
83
|
+
# Called for a comment event.
|
84
|
+
def on_comment(comment)
|
85
|
+
STDOUT << "on_comment" << "\n" <<
|
86
|
+
" comment: " << comment << "\n"
|
87
|
+
STDOUT.flush
|
88
|
+
end
|
89
|
+
|
90
|
+
# Called for a end document event.
|
91
|
+
def on_end_document
|
92
|
+
STDOUT << "on_end_document\n"
|
93
|
+
STDOUT.flush
|
94
|
+
end
|
95
|
+
|
96
|
+
# Called for a end element event.
|
97
|
+
def on_end_element_ns(name, prefix, uri)
|
98
|
+
STDOUT << "on_end_element_ns" << "\n" <<
|
99
|
+
" name: " << name << "\n" <<
|
100
|
+
" prefix: " << prefix << "\n" <<
|
101
|
+
" uri: " << uri << "\n"
|
102
|
+
STDOUT.flush
|
103
|
+
end
|
104
|
+
|
105
|
+
# Called for parser errors.
|
106
|
+
def on_error(error)
|
107
|
+
STDOUT << "on_error" << "\n"
|
108
|
+
" error " << error << "\n"
|
109
|
+
STDOUT.flush
|
110
|
+
end
|
111
|
+
|
112
|
+
# Called for an external subset event.
|
113
|
+
def on_external_subset(name, external_id, system_id)
|
114
|
+
STDOUT << "on_external_subset" << "\n"
|
115
|
+
" external_id " << external_id << "\n" <<
|
116
|
+
" system_id " << system_id << "\n"
|
117
|
+
STDOUT.flush
|
118
|
+
end
|
119
|
+
|
120
|
+
# Called for an external subset notification event.
|
121
|
+
def on_has_external_subset
|
122
|
+
STDOUT << "on_has_internal_subset\n"
|
123
|
+
STDOUT.flush
|
124
|
+
end
|
125
|
+
|
126
|
+
# Called for an internal subset notification event.
|
127
|
+
def on_has_internal_subset
|
128
|
+
STDOUT << "on_has_internal_subset\n"
|
129
|
+
STDOUT.flush
|
130
|
+
end
|
131
|
+
|
132
|
+
# Called for an internal subset event.
|
133
|
+
def on_internal_subset(name, external_id, system_id)
|
134
|
+
STDOUT << "on_internal_subset" << "\n"
|
135
|
+
" external_id " << external_id << "\n" <<
|
136
|
+
" system_id " << system_id << "\n"
|
137
|
+
STDOUT.flush
|
138
|
+
end
|
139
|
+
|
140
|
+
# Called for 'is standalone' event.
|
141
|
+
def on_is_standalone
|
142
|
+
STDOUT << "on_is_standalone\n"
|
143
|
+
STDOUT.flush
|
144
|
+
end
|
145
|
+
|
146
|
+
# Called for an processing instruction event.
|
147
|
+
def on_processing_instruction(target, data)
|
148
|
+
STDOUT << "on_characters" << "\n"
|
149
|
+
" target: " << target << "\n" <<
|
150
|
+
" data: " << data << "\n"
|
151
|
+
STDOUT.flush
|
152
|
+
end
|
153
|
+
|
154
|
+
# Called for a reference event.
|
155
|
+
def on_reference(name)
|
156
|
+
STDOUT << "on_reference:" << "\n" <<
|
157
|
+
" name:" << name << "\n"
|
158
|
+
STDOUT.flush
|
159
|
+
end
|
160
|
+
|
161
|
+
# Called for a start document event.
|
162
|
+
def on_start_document
|
163
|
+
STDOUT << "on_start_document\n"
|
164
|
+
STDOUT.flush
|
165
|
+
end
|
166
|
+
|
167
|
+
# Called for a start element event.
|
168
|
+
def on_start_element_ns(name, attributes, prefix, uri, namespaces)
|
169
|
+
STDOUT << "on_start_element_ns" << "\n" <<
|
170
|
+
" name: " << name << "\n" <<
|
171
|
+
" attr: " << (attributes || Hash.new).inspect << "\n" <<
|
172
|
+
" prefix: " << prefix << "\n" <<
|
173
|
+
" uri: " << uri << "\n" <<
|
174
|
+
" ns_defs: " << (namespaces || Hash.new).inspect << "\n"
|
175
|
+
STDOUT.flush
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
180
|
end
|
data/lib/libxml/sax_parser.rb
CHANGED
@@ -1,41 +1,41 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module LibXML
|
4
|
-
module XML
|
5
|
-
class SaxParser
|
6
|
-
# call-seq:
|
7
|
-
# XML::SaxParser.file(path) -> XML::SaxParser
|
8
|
-
#
|
9
|
-
# Creates a new parser by parsing the specified file or uri.
|
10
|
-
def self.file(path)
|
11
|
-
context = XML::Parser::Context.file(path)
|
12
|
-
self.new(context)
|
13
|
-
end
|
14
|
-
|
15
|
-
# call-seq:
|
16
|
-
# XML::SaxParser.io(io) -> XML::SaxParser
|
17
|
-
# XML::SaxParser.io(io, :encoding => XML::Encoding::UTF_8) -> XML::SaxParser
|
18
|
-
#
|
19
|
-
# Creates a new reader by parsing the specified io object.
|
20
|
-
#
|
21
|
-
# Parameters:
|
22
|
-
#
|
23
|
-
# encoding - The document encoding, defaults to nil. Valid values
|
24
|
-
# are the encoding constants defined on XML::Encoding.
|
25
|
-
def self.io(io, options = {})
|
26
|
-
context = XML::Parser::Context.io(io)
|
27
|
-
context.encoding = options[:encoding] if options[:encoding]
|
28
|
-
self.new(context)
|
29
|
-
end
|
30
|
-
|
31
|
-
# call-seq:
|
32
|
-
# XML::SaxParser.string(string)
|
33
|
-
#
|
34
|
-
# Creates a new parser by parsing the specified string.
|
35
|
-
def self.string(string)
|
36
|
-
context = XML::Parser::Context.string(string)
|
37
|
-
self.new(context)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module LibXML
|
4
|
+
module XML
|
5
|
+
class SaxParser
|
6
|
+
# call-seq:
|
7
|
+
# XML::SaxParser.file(path) -> XML::SaxParser
|
8
|
+
#
|
9
|
+
# Creates a new parser by parsing the specified file or uri.
|
10
|
+
def self.file(path)
|
11
|
+
context = XML::Parser::Context.file(path)
|
12
|
+
self.new(context)
|
13
|
+
end
|
14
|
+
|
15
|
+
# call-seq:
|
16
|
+
# XML::SaxParser.io(io) -> XML::SaxParser
|
17
|
+
# XML::SaxParser.io(io, :encoding => XML::Encoding::UTF_8) -> XML::SaxParser
|
18
|
+
#
|
19
|
+
# Creates a new reader by parsing the specified io object.
|
20
|
+
#
|
21
|
+
# Parameters:
|
22
|
+
#
|
23
|
+
# encoding - The document encoding, defaults to nil. Valid values
|
24
|
+
# are the encoding constants defined on XML::Encoding.
|
25
|
+
def self.io(io, options = {})
|
26
|
+
context = XML::Parser::Context.io(io)
|
27
|
+
context.encoding = options[:encoding] if options[:encoding]
|
28
|
+
self.new(context)
|
29
|
+
end
|
30
|
+
|
31
|
+
# call-seq:
|
32
|
+
# XML::SaxParser.string(string)
|
33
|
+
#
|
34
|
+
# Creates a new parser by parsing the specified string.
|
35
|
+
def self.string(string)
|
36
|
+
context = XML::Parser::Context.string(string)
|
37
|
+
self.new(context)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
41
|
end
|