У меня есть XML документ, который я хотел бы обновить из отдельного фрейма данных.
Например, я хотел бы обновить все пустые идентификаторы субподряда ('extra1') в моем XML, которые я хотел бы обновить посмотрите на этот фрейм данных, так что вместо каждого из этих текстов узлов empy в XML будет вставлено уникальное значение.
Я мог бы управлять обновлением текста узла с одним значением, но что если это переменная? Возможно ли вообще такое массовое обновление?
Я пробовал следующее:
Запрос и информационный фрейм для свободных узлов 'extra1' в XML:
data = []
import xml.etree.ElementTree as ET
import pandas as pd
tree = ET.parse('Claims.xml')
root = tree.getroot()
for claims in root:
for claim in claims:
for customer in claim.findall('customer'):
extra1 = customer.find('extra1').text
if extra1 is None and contractId is not None:
for extra1 in customer.findall('extra1'):
extra1 = customer.find('extra1').text
for contractId in customer.findall('contractId'):
contractId = int(customer.find('contractId').text)
for uid in customer.findall('uid'): # unique identifier
uid = customer.find('uid').text
data.append((uid, contractId, extra1))
cols = ['uid', 'contractId', 'extra1']
tree.write('output2.xml', encoding = 'UTF-8')
customer2 = pd.DataFrame(data, columns = cols)
display(customer2)
Что даст мне что-то вроде этого:
- uid: 1115565, 1115566, 1115567
- contractId: 45823457, 45823458, 45823459
- extra1: Нет, Нет, Нет
Затем я просматриваю пропущенные значения в рассматриваемом фрейме данных.
Как только это будет сделано, как мне записать значения обратно в XML, если предположить, что есть не только три строки, но, скажем, сто, поэтому ручное обновление не будет возможным?
Спасибо за вашу помощь и предложения заранее!