@@ -98,20 +98,22 @@ def iter_element(self, el: etree.Element, parent: etree.Element | None = None) -
9898 for child in reversed (el ):
9999 self .iter_element (child , el )
100100 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
107108 if parent is not None and el .tail :
108109 tail = el .tail
109110 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
115117
116118 def run (self , root : etree .Element ) -> etree .Element | None :
117119 ''' Step through tree to find known abbreviations. '''
0 commit comments