У меня есть скрипт Python, который анализирует несколько файлов XML с одинаковой структурой, находит соответствующие элементы и печатает все теги и атрибуты (и записывает в файл, но вместо этого я хотел бы создать некоторые структурированные данные).
Это прекрасно работает, но я хотел бы создать новый XML-файл, отражающий структуру оригинала, но только с элементами, соответствующими указанным мной шаблонам.
Вот функция, которая ищет файлы:
import xml.etree.cElementTree as ET
import glob
filename = "media_code2_output.txt"
def find_mediacode2(inputfile, outputfile):
#find parent node
for parent in root.iter("musa"):
#parent node attribute "dr-production" must be true (as string)
if parent.attrib["dr-production"] == "true":
#each child element must have media-code element be 2.
for mediekode in parent.iter("media-code"):
if mediekode.text == "2":
#pint all fields
for field in parent.iter():
print(field.tag, field.attrib, field.text)
#write all fields to file
outputfile.write(str(field.tag) + " " + str(field.attrib) + " " + str(field.text) + "\n")
#print spacer line
outputfile.write("\n"+"-"*80+"\n")
print("\n"+"-"*80+"\n")
for inputfile in glob.glob('*/*.xml'):
tree = ET.parse(inputfile)
root = tree.getroot()
with open(filename, "a+") as outputfile:
find_mediacode2(root, outputfile)
Вот пример данных из файлов:
https://pastebin.com/AHEcDv36
В идеале я хотел бы представить данные в базе данных Access.