diff --git a/Backend-libXML/Parser.py b/Backend-libXML/Parser.py index 827b356..67ebfc1 100644 --- a/Backend-libXML/Parser.py +++ b/Backend-libXML/Parser.py @@ -14,7 +14,9 @@ def prettify(source: str) -> str: prolog_end = source.find("?>") + 2 prolog = source[prolog_start:prolog_end] + "\n" source = source[prolog_end: ] - xml = etree.XML(source) + + parser = etree.XMLParser(remove_blank_text=True) + xml = etree.fromstring(source, parser=parser) return prolog + etree.tostring(xml, pretty_print=True).decode() def minimize(source: str) -> str: @@ -23,18 +25,18 @@ def minimize(source: str) -> str: :param source: XML :return: minimized XML """ - result = source - to_remove = [" ", " ", "\t", "\n"] - to_substitute = [(" <", "<"), ("> ", ">"), (" ", ""), (" >", ">")] + prolog = "" + prolog_start = source.find("") - for chars in to_remove: - result = result.replace(chars, "") + if prolog_start != -1: + prolog_end = source.find("?>") + 2 + prolog = source[prolog_start:prolog_end] + source = source[prolog_end: ] - for e in to_substitute: - result = result.replace(e[0], e[1]) - - return result + parser = etree.XMLParser(remove_blank_text=True) + xml = etree.fromstring(source, parser=parser) + return prolog + etree.tostring(xml, pretty_print=False).decode() def xpath(source: str, xpath: str) -> str: diff --git a/Frontend/assets/css/tools/r11form.css b/Frontend/assets/css/tools/r11form.css index e54e151..5e9728e 100644 --- a/Frontend/assets/css/tools/r11form.css +++ b/Frontend/assets/css/tools/r11form.css @@ -330,8 +330,8 @@ height: 300px; } -.textarea-800 { - height: 800px; +.textarea-700 { + height: 700px; } .centered-content { diff --git a/Frontend/assets/scripts/tools/scripts.js b/Frontend/assets/scripts/tools/scripts.js index 76e82c8..3660e48 100644 --- a/Frontend/assets/scripts/tools/scripts.js +++ b/Frontend/assets/scripts/tools/scripts.js @@ -148,24 +148,32 @@ function performRequest(endpoint, checkXML, checkTransform){ } function performFormatRequest(endpoint, checkXML, sourceId, targetId){ + const sourceElement = document.getElementById(sourceId); + const targetElement = document.getElementById(targetId); + const infoElement = document.getElementById("formatinfo"); const port = 8082; - var xmlData = document.getElementById(sourceId).value.trim(); + var xmlData = sourceElement.value.trim(); var empty = false; if (defaultStrings.includes(xmlData) && checkXML) { - document.getElementById(sourceId).style.backgroundColor = color_red; + sourceElement.style.backgroundColor = color_red; xmlData = ""; empty = true; } if (!empty) { restRequest(port, endpoint, xmlData, "").then(function(result) { + console.log(result); if (result.status == "OK") { - document.getElementById(targetId).value = result.result; - document.getElementById(targetId).style.backgroundColor = null; + targetElement.value = result.result; + targetElement.style.backgroundColor = null; + infoElement.innerText = ' Computed'.concat(" in ", result.time, "ms."); + infoElement.style.color = "#30aa58"; } else { - document.getElementById(targetId).style.backgroundColor = color_red; + targetElement.style.backgroundColor = color_red; + infoElement.innerText = result.result; + infoElement.style.color = "#aa3030"; } }); diff --git a/Frontend/tools/xmlFormatter.html b/Frontend/tools/xmlFormatter.html index 9803e0f..7ac84d2 100644 --- a/Frontend/tools/xmlFormatter.html +++ b/Frontend/tools/xmlFormatter.html @@ -14,23 +14,34 @@
- - - - - - -