如何使用python-etree重新创建此XML代码



当我研究如何使用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)

最新更新