我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用xml.sax.saxutils.escape()。
def disallowed_token(self, token): token_type = token["type"] if token_type == "EndTag": token["data"] = "</%s>" % token["name"] elif token["data"]: assert token_type in ("StartTag", "EmptyTag") attrs = [] for (ns, name), v in token["data"].items(): attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v))) token["data"] = "<%s%s>" % (token["name"], ''.join(attrs)) else: token["data"] = "<%s>" % token["name"] if token.get("selfClosing"): token["data"] = token["data"][:-1] + "/>" token["type"] = "Characters" del token["name"] return token
def disallowed_token(self, token, token_type): if token_type == tokenTypes["EndTag"]: token["data"] = "</%s>" % token["name"] elif token["data"]: attrs = ''.join([' %s="%s"' % (k, escape(v)) for k, v in token["data"]]) token["data"] = "<%s%s>" % (token["name"], attrs) else: token["data"] = "<%s>" % token["name"] if token.get("selfClosing"): token["data"] = token["data"][:-1] + "/>" if token["type"] in list(tokenTypes.keys()): token["type"] = "Characters" else: token["type"] = tokenTypes["Characters"] del token["name"] return token
def get_response(program_data_list: List[ProgramData], channel_id: int): response = '' for program_data in program_data_list: response += '<programme start="' + date_to_string(program_data.start_time) + '" stop="' + date_to_string( program_data.stop_time) + '" channel="' + str(channel_id) + '">' response += '<title lang="en">' + program_data.name + '</title>' if program_data.desc is not None: response += '<desc lang="en">' + escape(program_data.desc) + '</desc>' if program_data.category is not None: response += '<category lang="en">' + escape(program_data.category) + '</category>' if program_data.icon is not None: response += '<icon src="' + program_data.icon + '"/>' response += '</programme>' return response
def create_object_link_msg_xml_by_name(object_list = None): ''' get information from object_list and covert it to xml. ''' if not object_list: object_list = [] xml_string = r'<CreateObjectLink>' for i in range(len(object_list)): part = str(object_list[i]).strip() file_path = convert_utf8(part) file_path = escape(file_path) xml_string += r'<Part>' xml_string += r'<PartNumber>' + str(i + 1) + r'</PartNumber>' xml_string += r'<PartName>' + str(file_path) + r'</PartName>' xml_string += r'</Part>' xml_string += r'</CreateObjectLink>' return xml_string
def create_object_link_msg_xml(part_msg_list = None): ''' get information from part_msg_list and covert it to xml. part_msg_list has special format. ''' if not part_msg_list: part_msg_list = [] xml_string = r'<CreateObjectLink>' for part in part_msg_list: if len(part) >= 2: file_path = convert_utf8(part[1]) file_path = escape(file_path) xml_string += r'<Part>' xml_string += r'<PartNumber>' + str(part[0]) + r'</PartNumber>' xml_string += r'<PartName>' + str(file_path) + r'</PartName>' xml_string += r'</Part>' else: print "the ", part, " in part_msg_list is not as expected!" return "" xml_string += r'</CreateObjectLink>' return xml_string
def create_delete_object_msg_xml(object_list=None, is_quiet=False, is_defult=False): ''' covert object name list to xml. ''' if not object_list: object_list = [] xml_string = r'<Delete>' if not is_defult: if is_quiet: xml_string += r'<Quiet>true</Quiet>' else: xml_string += r'<Quiet>false</Quiet>' for object in object_list: key = convert_utf8(object) key = escape(key) xml_string += r'<Object><Key>%s</Key></Object>' % key xml_string += r'</Delete>' return xml_string ############### operate OSS ###############
def stopTestRun(self): super(HtmlOutput, self).stopTestRun() self.stopTime = datetime.datetime.now() report_attrs = self._getReportAttributes() generator = 'subunit2html %s' % __version__ heading = self._generate_heading(report_attrs) report = self._generate_report() ending = self._generate_ending() output = TemplateData.HTML_TMPL % dict( title=saxutils.escape(TemplateData.DEFAULT_TITLE), generator=generator, stylesheet=TemplateData.STYLESHEET_TMPL, heading=heading, report=report, ending=ending, ) if self.html_file: with open(self.html_file, 'wb') as html_file: html_file.write(output.encode('utf8'))
def generateReport(self, test, result): report_attrs = self.getReportAttributes(result) generator = 'HTMLTestRunner %s' % __version__ stylesheet = self._generate_stylesheet() heading = self._generate_heading(report_attrs) report = self._generate_report(result) ending = self._generate_ending() output = self.HTML_TMPL % dict( title = saxutils.escape(self.title), generator = generator, stylesheet = stylesheet, heading = heading, report = report, ending = ending, ) self.stream.write(output.encode('utf8'))
def _generate_report_test(self, rows, cid, tid, n, t, o, e): # e.g. 'pt1.1', 'ft1.1', etc has_output = bool(o or e) tid = (n == 0 and 'p' or 'f') + 't%s.%s' % (cid+1,tid+1) name = t.id().split('.')[-1] doc = t.shortDescription() or "" desc = doc and ('%s: %s' % (name, doc)) or name tmpl = has_output and self.REPORT_TEST_WITH_OUTPUT_TMPL or self.REPORT_TEST_NO_OUTPUT_TMPL script = self.REPORT_TEST_OUTPUT_TMPL % dict( id=tid, output=saxutils.escape(o+e), ) row = tmpl % dict( tid=tid, Class=(n == 0 and 'hiddenRow' or 'none'), style=(n == 2 and 'errorCase' or (n == 1 and 'failCase' or 'none')), desc=desc, script=script, status=self.STATUS[n], ) rows.append(row) if not has_output: return
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
def _set_date_to_xml_text(self, date_value, date_error, xml_element_name, xml_attrs): """ Common handling of invalid dates for the date... element handlers. Prints warning on console and sets date_value to a text-only date with the problematic XML inside. """ xml = "<{element_name} {attrs}/>".format( element_name = xml_element_name, attrs = " ".join( ['{}="{}"'.format(k,escape(v, entities={'"' : """})) for k,v in xml_attrs.items()])) # TRANSLATORS: leave the {date} and {xml} untranslated in the format string, # but you may re-order them if needed. LOG.warning(_("Invalid date {date} in XML {xml}, preserving XML as text" ).format(date=date_error.date.to_struct(), xml=xml)) date_value.set(modifier=Date.MOD_TEXTONLY, text=xml)
def write_iterable_as_elements(self, values): """Write a dict as elements, possibly recursively.""" if isinstance(values, dict): values = values.iteritems() for (name, value) in values: if isinstance(value, basestring): self.output_stream.write('%s <%s>%s</%s>\n' % (self.indent, name, saxutils.escape(value), name)) else: self.output_stream.write('%s <%s>\n' % (self.indent, name)) self.depth += 1 self.indent = ' ' * self.depth self.write_iterable_as_elements(value) self.depth -= 1 self.indent = ' ' * self.depth self.output_stream.write('%s </%s>\n' % (self.indent, name))
def wrap_field(field): """ Given a field, detect if it has special characters <, > or & and if so wrap it in a CDATA field. """ if not isinstance(field, str): return field if html_chars.search(field): return '<![CDATA[' + field + ']]>' else: # If there's already escaped data like &, I want to unescape it # first, so I can re-escape *everything* field = saxutils.unescape(field) return saxutils.escape(field)