xmlparser 0.6.81

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 (52) hide show
  1. data/MANIFEST +112 -0
  2. data/README +697 -0
  3. data/README.ja +789 -0
  4. data/Rakefile +34 -0
  5. data/ext/encoding.h +91 -0
  6. data/ext/xmlparser/mkrf_conf.rb +28 -0
  7. data/ext/xmlparser/xmlparser.c +2226 -0
  8. data/lib/sax.rb +1 -0
  9. data/lib/saxdriver.rb +1 -0
  10. data/lib/wget.rb +47 -0
  11. data/lib/xml/dom/builder-ja.rb +58 -0
  12. data/lib/xml/dom/builder.rb +310 -0
  13. data/lib/xml/dom/core.rb +3276 -0
  14. data/lib/xml/dom/digest.rb +94 -0
  15. data/lib/xml/dom/visitor.rb +182 -0
  16. data/lib/xml/dom2/attr.rb +213 -0
  17. data/lib/xml/dom2/cdatasection.rb +76 -0
  18. data/lib/xml/dom2/characterdata.rb +177 -0
  19. data/lib/xml/dom2/comment.rb +81 -0
  20. data/lib/xml/dom2/core.rb +19 -0
  21. data/lib/xml/dom2/document.rb +317 -0
  22. data/lib/xml/dom2/documentfragment.rb +82 -0
  23. data/lib/xml/dom2/documenttype.rb +102 -0
  24. data/lib/xml/dom2/dombuilder.rb +277 -0
  25. data/lib/xml/dom2/dombuilderfilter.rb +12 -0
  26. data/lib/xml/dom2/domentityresolver.rb +13 -0
  27. data/lib/xml/dom2/domentityresolverimpl.rb +37 -0
  28. data/lib/xml/dom2/domexception.rb +95 -0
  29. data/lib/xml/dom2/domimplementation.rb +61 -0
  30. data/lib/xml/dom2/dominputsource.rb +29 -0
  31. data/lib/xml/dom2/element.rb +533 -0
  32. data/lib/xml/dom2/entity.rb +110 -0
  33. data/lib/xml/dom2/entityreference.rb +107 -0
  34. data/lib/xml/dom2/namednodemap.rb +138 -0
  35. data/lib/xml/dom2/node.rb +587 -0
  36. data/lib/xml/dom2/nodelist.rb +231 -0
  37. data/lib/xml/dom2/notation.rb +86 -0
  38. data/lib/xml/dom2/processinginstruction.rb +155 -0
  39. data/lib/xml/dom2/text.rb +128 -0
  40. data/lib/xml/dom2/xpath.rb +398 -0
  41. data/lib/xml/encoding-ja.rb +42 -0
  42. data/lib/xml/parser.rb +13 -0
  43. data/lib/xml/parserns.rb +236 -0
  44. data/lib/xml/sax.rb +353 -0
  45. data/lib/xml/saxdriver.rb +370 -0
  46. data/lib/xml/xpath.rb +3284 -0
  47. data/lib/xml/xpath.ry +2352 -0
  48. data/lib/xmldigest.rb +1 -0
  49. data/lib/xmltree.rb +1 -0
  50. data/lib/xmltreebuilder.rb +1 -0
  51. data/lib/xmltreevisitor.rb +1 -0
  52. metadata +111 -0
@@ -0,0 +1,231 @@
1
+ ## -*- Ruby -*-
2
+ ## XML::DOM
3
+ ## 1998-2001 by yoshidam
4
+ ##
5
+
6
+ module XML
7
+ module DOM
8
+ =begin
9
+ == Class XML::DOM::NodeList
10
+
11
+
12
+ =end
13
+ class NodeList
14
+
15
+ =begin
16
+ === Class Methods
17
+
18
+ --- NodeList.new(nodes = nil)
19
+
20
+ creates a new NodeList.
21
+ =end
22
+ def initialize(nodes = nil)
23
+ if nodes.nil?
24
+ @nodes = []
25
+ elsif nodes.is_a?(Array)
26
+ @nodes = nodes
27
+ else
28
+ raise "parameter error"
29
+ end
30
+ end
31
+
32
+ =begin
33
+ === Methods
34
+
35
+ --- NodeList#item(index)
36
+
37
+ [DOM]
38
+ return the indexth item in the NodeList.
39
+ =end
40
+ ## [DOM]
41
+ def item(index)
42
+ @nodes[index]
43
+ end
44
+
45
+ =begin
46
+ --- NodeList#size()
47
+
48
+ return size of NodeList.
49
+ =end
50
+ def size
51
+ @nodes.length
52
+ end
53
+ alias length size
54
+
55
+ =begin
56
+ --- NodeList#[](index)
57
+
58
+ return indexth node of the NodeList.
59
+ =end
60
+ def [](index)
61
+ @nodes[index]
62
+ end
63
+
64
+ =begin
65
+ --- NodeList#[]=(*p)
66
+
67
+ set node of indexth node of the NodeList.
68
+ =end
69
+ def []=(*p)
70
+ if p.length == 2
71
+ @nodes[p[0]] = p[1]
72
+ elsif p.length == 3
73
+ @nodes[p[0], p[1]] = p[2]
74
+ end
75
+ end
76
+
77
+ =begin
78
+ --- NodeList#each
79
+
80
+ iterates over each node of the NodeList.
81
+ =end
82
+ def each
83
+ @nodes.each do |value|
84
+ yield(value)
85
+ end
86
+ end
87
+
88
+ =begin
89
+ --- NodeList#reversible_each(reverse = false)
90
+
91
+ iterates over each node of the reversed NodeList.
92
+ =end
93
+ ## [Masaki Fukushima]
94
+ def reversible_each(reverse = false)
95
+ if !reverse
96
+ @nodes.each do |value|
97
+ yield(value)
98
+ end
99
+ else
100
+ @nodes.reverse_each do |value|
101
+ yield(value)
102
+ end
103
+ end
104
+ end
105
+
106
+ =begin
107
+ --- NodeList#push(*nodes)
108
+
109
+ adds nodes into the NodeList.
110
+ =end
111
+ def push(*nodes)
112
+ nodes.each do |node|
113
+ if node.is_a?(Array)
114
+ self.push(*node)
115
+ elsif node.is_a?(NodeList)
116
+ @nodes.concat(node.to_a)
117
+ elsif node.is_a?(Node)
118
+ @nodes << node
119
+ else
120
+ raise "parameter error"
121
+ end
122
+ end
123
+ self
124
+ end
125
+
126
+ =begin
127
+ --- NodeList#concat(*nodes)
128
+
129
+ alias of NodeList#push.
130
+ =end
131
+ alias concat push
132
+
133
+ =begin
134
+ --- NodeList#pop
135
+
136
+ pops and returns the last node of the NodeList.
137
+ =end
138
+ def pop
139
+ @nodes.pop
140
+ end
141
+
142
+ =begin
143
+ --- NodeList#shift
144
+
145
+ removes and returns the first node of the NodeList.
146
+ =end
147
+ def shift
148
+ @nodes.shift
149
+ end
150
+
151
+ =begin
152
+ --- NodeList#to_s
153
+
154
+ returns the string representation of the NodeList.
155
+ =end
156
+ def to_s
157
+ @nodes.to_s
158
+ end
159
+
160
+ =begin
161
+ --- NodeList#reverse
162
+
163
+ returns the reversed NodeList.
164
+ =end
165
+ def reverse
166
+ @nodes.reverse
167
+ end
168
+
169
+ =begin
170
+ --- NodeList#to_a
171
+
172
+ converts the NodeList into an array.
173
+ =end
174
+ def to_a
175
+ @nodes
176
+ end
177
+
178
+ =begin
179
+ --- NodeList#+(nodes)
180
+
181
+ return the newly created concatenated NodeList.
182
+ =end
183
+ def +(nodes)
184
+ if nodes.nil?
185
+ NodeList.new(@nodes)
186
+ elsif nodes.is_a?(Array)
187
+ NodeList.new(@nodes + nodes)
188
+ elsif nodes.is_a?(NodeList)
189
+ NodeList.new(@nodes + nodes.to_a)
190
+ elsif nodes.is_a?(Node)
191
+ NodeList.new(@nodes + [nodes])
192
+ else
193
+ raise "parameter error"
194
+ end
195
+ end
196
+
197
+ =begin
198
+ --- NodeList#<<(nodes)
199
+
200
+ appends nodes to the NodeList.
201
+ =end
202
+ ## modified by Masaki Fukushima
203
+ def <<(nodes)
204
+ if nodes.nil?
205
+ ## no change
206
+ elsif nodes.is_a?(Array)
207
+ @nodes.concat(nodes)
208
+ elsif nodes.is_a?(NodeList)
209
+ @nodes.concat(nodes.to_a)
210
+ elsif nodes.is_a?(Node)
211
+ @nodes << nodes
212
+ else
213
+ raise "parameter error"
214
+ end
215
+ self
216
+ end
217
+
218
+ ## get nodeValues by names
219
+ ## names ::= name ('|' name)*
220
+ def _getValues(names)
221
+ ret = []
222
+ names.split('|').each do |name|
223
+ if !@nodes[name].nil?
224
+ ret.push(@nodes[name].nodeValue)
225
+ end
226
+ end
227
+ ret
228
+ end
229
+ end
230
+ end
231
+ end
@@ -0,0 +1,86 @@
1
+ ## -*- Ruby -*-
2
+ ## XML::DOM
3
+ ## 1998-2001 by yoshidam
4
+ ##
5
+
6
+ require 'xml/dom2/node'
7
+
8
+ module XML
9
+ module DOM
10
+
11
+ =begin
12
+ == Class XML::DOM::Notation
13
+
14
+ === superclass
15
+ Node
16
+ =end
17
+ class Notation<Node
18
+ =begin
19
+ === Class Methods
20
+
21
+ --- Notation.new(name, pubid, sysid)
22
+
23
+ creates a new Notation.
24
+ =end
25
+ def initialize(name, pubid, sysid)
26
+ super()
27
+ @name = name.freeze
28
+ @pubid = pubid.freeze
29
+ @sysid = sysid.freeze
30
+ end
31
+
32
+ =begin
33
+ === Methods
34
+
35
+ --- Notation#nodeType
36
+
37
+ [DOM]
38
+ returns the nodeType.
39
+ =end
40
+ ## [DOM]
41
+ def nodeType
42
+ NOTATION_NODE
43
+ end
44
+
45
+ =begin
46
+ --- Notation#nodeName
47
+
48
+ [DOM]
49
+ returns the nodeName.
50
+ =end
51
+ ## [DOM]
52
+ def nodeName
53
+ @name
54
+ end
55
+
56
+ =begin
57
+ --- Notation#publicId
58
+
59
+ returns the publicId of the Notation.
60
+ =end
61
+ def publicId
62
+ @pubid
63
+ end
64
+
65
+ =begin
66
+ --- Notation#systemId
67
+
68
+ returns the systemId of the Notation.
69
+ =end
70
+ def systemId
71
+ @sysid
72
+ end
73
+
74
+ =begin
75
+ --- Notation#cloneNode(deep = true)
76
+
77
+ [DOM]
78
+ returns the copy of the Notation.
79
+ =end
80
+ ## [DOM]
81
+ def cloneNode(deep = true)
82
+ super(deep, @name, @pubid, @sysid)
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,155 @@
1
+ ## -*- Ruby -*-
2
+ ## XML::DOM
3
+ ## 1998-2001 by yoshidam
4
+ ##
5
+
6
+ require 'xml/dom2/node'
7
+
8
+ module XML
9
+ module DOM
10
+
11
+ =begin
12
+ == Class XML::DOM::ProcessingInstruction
13
+
14
+ === superclass
15
+ Node
16
+
17
+ =end
18
+ class ProcessingInstruction<Node
19
+
20
+ =begin
21
+ === Class Methods
22
+
23
+ --- ProcessingInstruction.new(target = nil, data = nil)
24
+
25
+ creates a new ProcessingInstruction.
26
+ =end
27
+ ## new(target, data)
28
+ ## target: String
29
+ ## data: String
30
+ def initialize(target = nil, data = nil)
31
+ super()
32
+ raise "parameter error" if !data
33
+ @target = target.freeze
34
+ @data = data.freeze
35
+ @value = target.dup
36
+ @value << " #{data}" if data != ""
37
+ @value.freeze
38
+ end
39
+
40
+ =begin
41
+ === Methods
42
+
43
+ --- ProcessingInstruction#nodeType
44
+
45
+ [DOM]
46
+ returns the nodeType.
47
+ =end
48
+ ## [DOM]
49
+ def nodeType
50
+ PROCESSING_INSTRUCTION_NODE
51
+ end
52
+
53
+ =begin
54
+ --- ProcessingInstruction#nodeName
55
+
56
+ [DOM]
57
+ returns the nodeName.
58
+ =end
59
+ ## [DOM]
60
+ def nodeName
61
+ "#proccessing-instruction"
62
+ end
63
+
64
+ =begin
65
+ --- ProcessingInstruction#target
66
+
67
+ [DOM]
68
+ returns the target of the ProcessingInstruction.
69
+ =end
70
+ ## [DOM]
71
+ def target
72
+ @target
73
+ end
74
+
75
+ def target=(p)
76
+ @target = p.freeze
77
+ @value = @target.dup
78
+ @value << " #{@data}" if @data != ""
79
+ @value.freeze
80
+ end
81
+
82
+ =begin
83
+ --- ProcessingInstruction#data
84
+
85
+ [DOM]
86
+ return the content of the ProcessingInstruction.
87
+ =end
88
+ ## [DOM]
89
+ def data
90
+ @data
91
+ end
92
+
93
+ =begin
94
+ --- ProcessingInstruction#data=(p)
95
+
96
+ [DOM]
97
+ sets p to the content of the ProcessingInstruction.
98
+ =end
99
+ ## [DOM]
100
+ def data=(p)
101
+ @data = p.freeze
102
+ @value = @target.dup
103
+ @value << " #{@data}" if @data != ""
104
+ @value.freeze
105
+ end
106
+
107
+ =begin
108
+ --- ProcessingInstruction#nodeValue
109
+
110
+ [DOM]
111
+ return nodevalue.
112
+
113
+ =end
114
+ ## [DOM]
115
+ def nodeValue
116
+ @value
117
+ end
118
+
119
+ ## inhibit changing value without target= or data=
120
+ undef nodeValue=
121
+
122
+ =begin
123
+ --- ProcessingInstruction#to_s
124
+
125
+ returns the string representation of the ProcessingInstruction.
126
+ =end
127
+ def to_s
128
+ ret = "<?#{@value}?>"
129
+ ret << "\n" if parentNode.nodeType == DOCUMENT_NODE
130
+ ret
131
+ end
132
+
133
+ =begin
134
+ --- ProcessingInstruction#dump(depth = 0)
135
+
136
+ dumps the ProcessingInstruction.
137
+ =end
138
+ def dump(depth = 0)
139
+ print ' ' * depth * 2
140
+ print "<?#{@value.inspect}?>\n"
141
+ end
142
+
143
+ =begin
144
+ --- ProcessingInstruction#cloneNode(deep = true)
145
+
146
+ [DOM]
147
+ returns the copy of the ProcessingInstruction.
148
+ =end
149
+ ## [DOM]
150
+ def cloneNode(deep = true)
151
+ super(deep, @target, @data)
152
+ end
153
+ end
154
+ end
155
+ end