checking export/import now with prettified xml
This commit is contained in:
		
							parent
							
								
									28dc5472c6
								
							
						
					
					
						commit
						c16819dab7
					
				| @ -7,13 +7,39 @@ def clean_label(label): | ||||
| 
 | ||||
| 
 | ||||
| def check_export(model): | ||||
|     exported_string = export_to_xml(model) | ||||
|     exported_string = prettify_xml(export_to_xml(model)) | ||||
|     model.import_xml(exported_string) | ||||
|     exported_string_2 = export_to_xml(model) | ||||
|     exported_string_2 = prettify_xml(export_to_xml(model)) | ||||
|      | ||||
|     if exported_string == exported_string_2: | ||||
|         window.console.log("OK") | ||||
|     else: | ||||
|         window.console.log("NOT OK!") | ||||
|         window.console.log(exported_string) | ||||
|         window.console.log(exported_string_2) | ||||
|     linenum = 1 | ||||
|     for line1, line2 in zip(exported_string.split("\n"), exported_string_2.split("\n")): | ||||
|         if line1 != line2: | ||||
|             window.console.log("Error on line {}".format(linenum)) | ||||
|             window.console.log(exported_string) | ||||
|             window.console.log(exported_string_2) | ||||
|             window.console.log("Error on line {}".format(linenum)) | ||||
|             break | ||||
|         linenum += 1 | ||||
|              | ||||
|     window.console.log("OK") | ||||
| 
 | ||||
| def prettify_xml(source_xml): | ||||
|     xml_doc = __new__(DOMParser()).parseFromString(source_xml, 'application/xml'); | ||||
|     xslt_doc = __new__(DOMParser()).parseFromString("".join([ | ||||
|         '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">', | ||||
|         '  <xsl:strip-space elements="*"/>', | ||||
|         '  <xsl:template match="para[content-style][not(text())]">', | ||||
|         '    <xsl:value-of select="normalize-space(.)"/>', | ||||
|         '  </xsl:template>', | ||||
|         '  <xsl:template match="node()|@*">', | ||||
|         '    <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>', | ||||
|         '  </xsl:template>', | ||||
|         '  <xsl:output indent="yes"/>', | ||||
|         '</xsl:stylesheet>']), 'application/xml') | ||||
| 
 | ||||
|     xslt_processor = __new__(XSLTProcessor()) | ||||
|     xslt_processor.importStylesheet(xslt_doc) | ||||
|     result_doc = xslt_processor.transformToDocument(xml_doc) | ||||
|     result_xml = __new__(XMLSerializer()).serializeToString(result_doc) | ||||
|      | ||||
|     return result_xml | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user