我有一个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数据库中表示数据。