Импорт XML-файла в базу данных Access с определенным идентификатором

Я изо всех сил пытаюсь импортировать огромное количество данных из XML-файла в Access. Проблема, с которой я столкнулся, заключается в том, что файлы, которые я хочу импортировать, содержат первую строку с идентификатором

<vin id = "11111111111111111">
<description>Mazda3 L 2.0l MZR 150 PS 4T 5AG AL-EDITION TRA-P</description>
<type>BL</type>
<typeapproval>e11*2001/116*0262*07</typeapproval>
<variant>B2F</variant>
<version>7EU</version>
<series>Mazda3</series>
<body>L</body>
<engine>2.0l MZR 150 PS</engine>
<grade>AL-EDITION</grade>
<transmission>5AG</transmission>
<colourtype>Mica</colourtype>
<extcolourcode>34K</extcolourcode>
<extcolourcodedescription>Crystal White Pearl</extcolourcodedescription>
<intcolourcode>BU4</intcolourcode>
<intcolourcodedescription>Black</intcolourcodedescription>
<registrationdate>2012-07-20</registrationdate>
<productiondate>2011-11-30</productiondate>
</vin>

поэтому результатом моего импорта являются все строки, кроме VIN-номера автомобиля, который фактически определяется как идентификатор.

Я пытался вручную заменить символы, например: "> и т. д. с и т. д.

избавиться от этого идентификатора, но на самом деле у меня есть десятки файлов и сотни тысяч записей в каждом файле, так что это довольно больно...

поэтому я подумал о том, чтобы объединить все файлы вместе со скриптом на питоне:

import os 
import csv
import pandas as pd
import numpy as np

ver='2011'

dirName =r'C:\Users\dawid\Desktop\DE_DATA\Mazda_DE\VINs_DE\Mazda\xml'.format(ver);

out_file=r'C:\Users\dawid\Desktop\DE_DATA\Mazda_DE\VINs_DE\Mazda\Output.xml'.format(ver);


def getListOfFiles(dirName):
    # create a list of file and sub directories 
    # names in the given directory
  
            listOfFile = os.listdir(dirName)
            allFiles = list()
    # Iterate over all the entries
            for entry in listOfFile:
        # Create full path
               
                fullPath = os.path.join(dirName, entry)
        # If entry is a directory then get the list of files in this directory 
                if os.path.isdir(fullPath):
                    allFiles = allFiles + getListOfFiles(fullPath)
                else:
                    allFiles.append(fullPath)
                if os.path.isdir(fullPath):
                    allFiles = allFiles + getListOfFiles(fullPath)
                
            return allFiles

listOfFileOut=getListOfFiles(dirName)

#filenames = allFiles
with open(out_file, 'w',encoding='ANSI') as outfile:
    for fname in listOfFileOut:
        with open(fname,encoding='ANSI') as infile:
            for line in infile:
                outfile.write(line)
                
print("Done")

Но это полностью разрушило структуру xml файла и я больше не могу его импортировать. Может ли кто-нибудь подсказать, можно ли использовать python, чтобы избавиться от всех этих идентификаторов, чтобы иметь возможность импортировать всю базу данных в доступ?

Заранее спасибо.введите здесь описание изображения

Помогает ли это stackoverflow.com/q/30029303/18157?

Jim Garrison 17.12.2020 02:22
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это.

from simplified_scrapy import utils, SimplifiedDoc, req

dirName = r'C:\Users\dawid\Desktop\DE_DATA\Mazda_DE\VINs_DE\Mazda\xml'
listFile = utils.getSubFile(dirName, end='.xml')
for f in listFile:
    doc = SimplifiedDoc(utils.getFileContent(f, encoding='ANSI'))
    doc.replaceReg('<vin[^>]*>', '<vin>')
    print(doc.html)
    # utils.saveFile(f, doc.html, encoding='ANSI') # write to original file

Результат:

<vin>
<description>Mazda3 L 2.0l MZR 150 PS 4T 5AG AL-EDITION TRA-P</description>
<type>BL</type>
<typeapproval>e11*2001/116*0262*07</typeapproval>
<variant>B2F</variant>
<version>7EU</version>
...

Другие вопросы по теме