1 Commits

Author SHA1 Message Date
4405a19633 Prettify xml output 2021-08-31 00:00:12 +02:00
3 changed files with 23 additions and 38 deletions

View File

@@ -11,7 +11,7 @@ import xml.etree.ElementTree as ET
import csv import csv
import datetime import datetime
import os import os
import xmlformatter from bs4 import BeautifulSoup
# ---------------------------------------------------------------------------- # # ---------------------------------------------------------------------------- #
@@ -71,11 +71,11 @@ def getXmlData(data):
def checkData(xmlData): def checkData(xmlData):
print() print()
missingData = [] missingData = False
for i, mérő in enumerate(xmlData): for mérő in xmlData:
for adat in mérő: for adat in mérő:
if len(mérő[adat]) == 0 or mérő[adat] == "diktalos": if len(mérő[adat]) == 0:
missingData.append(i) missingData = True
print(f'Adat hiányzik: "{adat}" a következő sorból:') print(f'Adat hiányzik: "{adat}" a következő sorból:')
print(mérő) print(mérő)
return missingData return missingData
@@ -148,22 +148,16 @@ for i, table in enumerate(csvArrs):
xmlReqData = [] xmlReqData = []
for i, table in enumerate(reqData): for i, table in enumerate(reqData):
print(f'Fájl ellenőrzése: {csvFileNames[i]}') print(f'Fájl ellenőrzése: {csvFileNames[i]}')
# unwrap data
currXmlData = getXmlData(table) currXmlData = getXmlData(table)
if not checkData(currXmlData):
# check for missing data
wrongLines = checkData(currXmlData)
if len(wrongLines) == 0:
print('Fájl hibátlan') print('Fájl hibátlan')
else:
# remove bad lines
print(wrongLines)
for ele in sorted(wrongLines, reverse=True):
del currXmlData[ele]
print() print()
xmlReqData.append(currXmlData) xmlReqData.append(currXmlData)
# print(xmlReqData)
# for i in xmlReqData:
# print(i)
# ------------------------------- Merge arrays ------------------------------- # # ------------------------------- Merge arrays ------------------------------- #
@@ -189,10 +183,11 @@ while fileNameNotFound:
if not os.path.exists(fileName): if not os.path.exists(fileName):
fileNameNotFound = False fileNameNotFound = False
print()
print(f'Fájl mentése ide: {fileName}') print(f'Fájl mentése ide: {fileName}')
print() print()
# --------------------------------- Write xml -------------------------------- # # ------------------------------- Generate xml ------------------------------- #
data = ET.Element('Leolvasasok') data = ET.Element('Leolvasasok')
for mérő in allXmlData: for mérő in allXmlData:
@@ -201,24 +196,18 @@ for mérő in allXmlData:
a = ET.SubElement(currSub, adat) a = ET.SubElement(currSub, adat)
a.text = mérő[adat] a.text = mérő[adat]
xmlString = ET.tostring(data, encoding="utf-8", xml_declaration=True) xmlString = ET.tostring(data)
# -------------------------------- Format xml -------------------------------- # # ------------------------------- Prettify xml ------------------------------- #
formatter = xmlformatter.Formatter(indent="2", indent_char=" ") bs_data = BeautifulSoup(xmlString, 'xml')
formattedXml = formatter.format_string(xmlString) prettyXml = bs_data.prettify()
# print(formattedXml) print(prettyXml)
print()
# ----------------------------- Fix line endings ----------------------------- #
WINDOWS_LINE_ENDING = b'\r\n'
UNIX_LINE_ENDING = b'\n'
formattedXml = formattedXml.replace(UNIX_LINE_ENDING, WINDOWS_LINE_ENDING)
# --------------------------------- Save file -------------------------------- # # --------------------------------- Save file -------------------------------- #
f = open(fileName, "xb") f = open(fileName, "x")
f.write(formattedXml) f.write(prettyXml)
f.close f.close

View File

@@ -27,8 +27,3 @@ A file nevében ne legyen ékezetes karakter.
Egy sor sem lehet 50 karakternél hosszabb! Egy sor sem lehet 50 karakternél hosszabb!
## Telepítés
```shell
pip install -r requirements.txt
```

View File

@@ -1 +1,2 @@
xmlformatter beautifulsoup4
lxml