Пример #1
0
 def handle_data(self, text, escape=1):
     # Called for each block of plain text, i.e. outside of any tag and
     # not containing any character or entity references
     if not self.elementstack:
         return
     if escape and self.contentparams.get('type') == 'application/xhtml+xml':
         text = _xmlescape(text)
     self.elementstack[-1][2].append(text)
Пример #2
0
 def handle_data(self, text, escape=1):
     # called for each block of plain text, i.e. outside of any tag and
     # not containing any character or entity references
     if not self.elementstack:
         return
     if escape and self.contentparams.get('type') == 'application/xhtml+xml':
         text = _xmlescape(text)
     self.elementstack[-1][2].append(text)
Пример #3
0
def stripcdata(txt):
    i = txt.find('<![CDATA[')
    if i != -1:
        k = txt.find(']]>', i)
        if k == -1:
            return txt
        return _xmlescape(txt[i+9:k], 0)
    return txt
Пример #4
0
def stripcdata(txt):
    i = txt.find('<![CDATA[')
    if i != -1:
        k = txt.find(']]>', i)
        if k == -1:
            return txt
        return _xmlescape(txt[i + 9:k], 0)
    return txt
Пример #5
0
 def parse_declaration(self, i):
     # override internal declaration handler to handle CDATA blocks
     if self.rawdata[i:i+9] == '<![CDATA[':
         k = self.rawdata.find(']]>', i)
         if k == -1:
             # CDATA block began but didn't finish
             k = len(self.rawdata)
             return k
         self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0)
         return k+3
     else:
         k = self.rawdata.find('>', i)
         if k >= 0:
             return k+1
         else:
             # We have an incomplete CDATA block.
             return k
Пример #6
0
 def parse_declaration(self, i):
     # override internal declaration handler to handle CDATA blocks
     if self.rawdata[i:i + 9] == '<![CDATA[':
         k = self.rawdata.find(']]>', i)
         if k == -1:
             # CDATA block began but didn't finish
             k = len(self.rawdata)
             return k
         self.handle_data(_xmlescape(self.rawdata[i + 9:k]), 0)
         return k + 3
     else:
         k = self.rawdata.find('>', i)
         if k >= 0:
             return k + 1
         else:
             # We have an incomplete CDATA block.
             return k
Пример #7
0
 def strattrs(self, attrs):
     return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'&quot;'})) for t in attrs])
Пример #8
0
 def strattrs(self, attrs):
     return ''.join([
         ' %s="%s"' % (t[0], _xmlescape(t[1], {'"': '&quot;'}))
         for t in attrs
     ])
Пример #9
0
 def xmlescape(text):
     """Fixup wrapper to make C{xml.sax.saxutils.escape} work with bytes"""
     return (_xmlescape(text.decode('latin1')).encode('latin1')
             if isinstance(text, bytes) else _xmlescape(text))