当我研究如何使用xml.etree.ElementTree时,我看到的所有视频都显示了如何输出HTML,比如:<drawing>
,然后是介于两者之间的内容,然后关闭</drawing>
,即像普通HTML一样。不过,我试图模仿的xml是这样的:
<Drawings>
<Drawing
SHOWRIDE_FLAG="FACILITY"
DOCUMENT_TYPE="Facility Image"
FILE_NAME="DE-103.5_R3.pdf"
FILE_PATH="H:EDMSEXAMPLE"
FILE_TYPE="PDF"
DOCUMENT_NUMBER="DE-103.5"
REVISION="03.00"
DOC_TITLE="SHOW EQUIPMENT POWER - ROOF"
PAGE_COUNT="1"
DRAWING_SIZE="E"
DISCIPLINE="ELECTRICAL, SHOW"
PART_NUMBER=""
COMPONENT="DRAWING"
COMMENTS=""
>
</Drawing>
</Drawings>
如果你注意到,在<Drawing
之后,它直接进入SHOWRIDE_FLAG
。直到评论结束,这一切才结束。基本上,我想做的是一个程序,它可以查看CSV文件,定位图纸编号、名称、修订版等,然后将其连接到PDF,这样我就可以生成一个XML文件并将其放入我们的EDMS系统中。我想我应该从后面开始,因为这将是最困难的,如果我不能生成一个简单的XML,从一开始就尝试一切都是浪费,因为我知道我可以很容易地做到这一点。现在,我们使用的是一个很久以前有人创建的程序,但在这个程序中,我必须添加所有的标题文本、修订版、图纸编号,如果是几张图纸,但当你有300多张图纸要做时,这可能会很痛苦。
这是我的代码,因为我认为我一开始会很容易:
import xml.etree.ElementTree as ET
#create the file structure
drawings = ET.Element('Drawings')
drawing = ET.Element(drawings, 'drawing', drawingCOMMENTS = 'Drawing COMMENTS', component = 'COMPONENT')
#create a new xml file with results
tree = ET.ElementTree(drawings)
tree.write('example_text.xml')
但这会生成如下代码:
<Drawings><Drawing COMMENTS ="" /><COMPONENT ="DRAWING" /></Drawings>
有什么想法吗?
# create "Drawings" element
drawings = ET.Element('Drawings')
# attributes are supplied as a dict
drawing = ET.Element('drawing', {'COMMENTS': 'Drawing COMMENTS', 'component': 'COMPONENT'})
# append child element to parent
drawings.append(drawing)