我如何使用 python etree re-create 这个 XML 代码?
How can I re-create this XML code using python etree?
当我研究如何使用 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:\EDMS\EXAMPLE"
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)
当我研究如何使用 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:\EDMS\EXAMPLE"
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)