@@ -98,20 +98,22 @@ def iter_element(self, el: etree.Element, parent: etree.Element | None = None) -
98
98
for child in reversed (el ):
99
99
self .iter_element (child , el )
100
100
if text := el .text :
101
- for m in reversed (list (self .RE .finditer (text ))):
102
- if self .abbrs [m .group (0 )]:
103
- abbr = self .create_element (self .abbrs [m .group (0 )], m .group (0 ), text [m .end ():])
104
- el .insert (0 , abbr )
105
- text = text [:m .start ()]
106
- el .text = text
101
+ if not isinstance (text , AtomicString ):
102
+ for m in reversed (list (self .RE .finditer (text ))):
103
+ if self .abbrs [m .group (0 )]:
104
+ abbr = self .create_element (self .abbrs [m .group (0 )], m .group (0 ), text [m .end ():])
105
+ el .insert (0 , abbr )
106
+ text = text [:m .start ()]
107
+ el .text = text
107
108
if parent is not None and el .tail :
108
109
tail = el .tail
109
110
index = list (parent ).index (el ) + 1
110
- for m in reversed (list (self .RE .finditer (tail ))):
111
- abbr = self .create_element (self .abbrs [m .group (0 )], m .group (0 ), tail [m .end ():])
112
- parent .insert (index , abbr )
113
- tail = tail [:m .start ()]
114
- el .tail = tail
111
+ if not isinstance (tail , AtomicString ):
112
+ for m in reversed (list (self .RE .finditer (tail ))):
113
+ abbr = self .create_element (self .abbrs [m .group (0 )], m .group (0 ), tail [m .end ():])
114
+ parent .insert (index , abbr )
115
+ tail = tail [:m .start ()]
116
+ el .tail = tail
115
117
116
118
def run (self , root : etree .Element ) -> etree .Element | None :
117
119
''' Step through tree to find known abbreviations. '''
0 commit comments