3
## 1998-2001 by yoshidam
6
require 'xml/dom2/node'
7
require 'xml/dom2/domexception'
13
== Class XML::DOM::Attr
20
## new(name, [text1, text2, ...]) or
21
## new(name, text1, text2, ...)
23
## text?: String or Node
28
--- Attr.new(name = nil, *text)
32
def initialize(name, *text)
34
raise "parameter error" if !name
42
raise "parameter error" if name.length != 2
45
@prefix, @localname = name[1].split(':')
47
@name = name[1] ## qualified name
48
@uri = name[0] ## namespace URI
86
returns the nodeValue.
91
@children.each do |child|
92
ret << child.nodeValue
98
--- Attr#nodeValue=(text)
101
returns the value of this node.
105
self.childNodes = [text]
111
return the string representation of the Attr.
115
nodeValue.scan(/./um) do |c|
116
code = c.unpack("U")[0]
117
if code == 9 || code == 10 || code == 13
118
value << sprintf("&#x%X;", code)
129
"#{@name}=\"#{value}\""
133
--- Attr#dump(depth = 0)
138
print ' ' * depth * 2
139
print "// #{self.to_s}\n"
143
--- Attr#cloneNode(deep = true)
146
returns the copy of the Attr.
149
def cloneNode(deep = true)
167
--- Attr#value=(value)
173
alias value nodeValue
174
alias value= nodeValue= ##
177
def specified; @specified; end
178
def specified=(is_specified); @specified = is_specified; end
181
def namespaceURI; @uri; end
184
def prefix; @prefix; end
190
@ownerElement.removeAttributeNode(self) if @ownerElement
192
@name = @prefix + ':' + @localname
193
@ownerElement.setAttributeNode(self) if @ownerElement
199
def localname; @localname; end
202
def ownerElement; @ownerElement; end
203
def ownerElement=(elem); @ownerElement = elem; end
206
unless node.nodeType == TEXT_NODE ||
207
node.nodeType == ENTITY_REFERENCE_NODE
208
raise DOMException.new(DOMException::HIERARCHY_REQUEST_ERR)