Revision 4328
Added by Aaron Marcuse-Kubitza over 12 years ago
lib/xml_dom.py | ||
---|---|---|
139 | 139 |
|
140 | 140 |
def last_elem(node): return NodeElemReverseIter(node).next() |
141 | 141 |
|
142 |
def only_child(node): |
|
143 |
assert has_one_child(node) # TODO: convert to an exception |
|
144 |
return node.firstChild |
|
145 |
|
|
142 | 146 |
class NodeEntryIter: |
143 | 147 |
def __init__(self, node): self.iter_ = NodeElemIter(node) |
144 | 148 |
|
... | ... | |
147 | 151 |
def next(self): |
148 | 152 |
entry = self.iter_.next() |
149 | 153 |
if is_empty(entry): value = None |
150 |
else: |
|
151 |
assert has_one_child(entry) # TODO: convert to an exception |
|
152 |
value = entry.firstChild |
|
154 |
else: value = only_child(entry) |
|
153 | 155 |
return (entry.tagName, value) |
154 | 156 |
|
155 | 157 |
##### Parent nodes |
... | ... | |
223 | 225 |
entry = self.iter_.next() |
224 | 226 |
if is_empty(entry): value_ = None |
225 | 227 |
elif is_text(entry): value_ = value(entry) |
226 |
else: |
|
227 |
assert has_one_child(entry) # TODO: convert to an exception |
|
228 |
value_ = entry.firstChild |
|
228 |
else: value_ = only_child(entry) |
|
229 | 229 |
return (entry.tagName, value_) |
230 | 230 |
|
231 | 231 |
def is_text_node_entry(val): return util.is_str(val[1]) |
Also available in: Unified diff
xml_dom.py: Added only_child() and use it where its definition was used