使用 Python,我试图弄清楚如何根据来自 CSV 的输入创建 XML 文件。在从 CSV 中获取一行数据之前,必须使用相同的标签添加一段静态信息。这可以用于 1 行数据或 20 行。DocFile 标签的数量应该是行数的两倍。 <DocFile> <FullPathName>P:\StaticFile.pdf</FullPathName> <PageRange UseAllPages="true"/> <Quantity>1</Quantity> <Section>1</Section> </DocFile> <DocFile> <FullPathName>row[0]</FullPathName> <PageRange UseAllPages="true"/> <Quantity>row[1]</Quantity> <Section>1</Section> </DocFile>这是 1 行数据的示例。以下是我到目前为止所写的内容。我遇到的问题是只有一部分 DocFile 将其转换为 XML。仅供参考,我对 Python 比较陌生。`import csvfrom lxml import etree as ET# Assign file locationscsvFile = '/Users/jehringer/python_work/Work Testing/CSV/Order_123.csv'xmlFile = '/Users/jehringer/python_work/Work Testing/CSV/myXMLFile.xml'# Build XML Structureroot = ET.Element('UltimateImposition')redirect = ET.SubElement(root, 'Redirection')printJob = ET.SubElement(redirect, 'PrintJob')queue = ET.SubElement(printJob, 'QueueName')documents = ET.SubElement(printJob, "Documents")docFile = ET.SubElement(documents, "DocFile")fullName = ET.SubElement(docFile, "FullPathName")pageCount = ET.SubElement(docFile, "PageRange")qty = ET.SubElement(docFile, "Quantity")section = ET.SubElement(docFile, "Section")# Define Static ValuesET.SubElement(queue, "Name").text = "process"ET.SubElement(queue, "FullPathName").text = r"P:\process"# Open CSV and run throughwith open(csvFile, 'r') as csvFiles:csvData = csv.reader(csvFiles, delimiter=',')for row in csvData: for i in range(2): if i == 1: fullName.text = "2up_v4_ejectjob.pdf" pageCount.set("UseAllPages", "true") qty.text = "1" section.text = '1' else: fullName.text = row[0] pageCount.set("UseAllPages", "true") qty.text = row[1] section.text = '1'# Write to XMLtree = ET.ElementTree(root)tree.write(xmlFile, pretty_print=True, xml_declaration=True)`
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
没有 CSV 标准,它只是使用通用文本表示电子表格的一种方式,因此它实际上取决于您的 CSV 的格式。
您可以使用 python csv 模块从 csv 文件中读取。然后,您可以通过压缩键和值来处理数据,以通常将它们表示为 dict。一旦您将所有内容作为 dict、lis 或两种类型的任意组合与嵌套,就可以轻松地将这些数据与其他数据融合或更新。然后您可以将生成的 python 数据类型转换为 xml。我通常宁愿使用 json 作为交换格式来做这种工作,但我会这样做。
你应该看看这个:将 Python 字典序列化为 XML 或者你也有这个模块,它也允许解析、操作和编写 xml:https : //docs.python.org/3/library/xml.etree.elementtree。 html#module-xml.etree.ElementTree
添加回答
举报
0/150
提交
取消