<p>实际上,您应该使用XSLT来完成这项工作,因为它是XML到另一种格式的转换。有关示例,请参见<a href="https://stackoverflow.com/questions/365312/xml-to-csv-using-xslt">this question</a>的答案。在</p>
<p>{不过,如果你想用其他代码来做的话,{</p>
<pre><code>from lxml import etree
with open('test.xml') as f:
tree = etree.parse(f)
# At this point, we can step through the xml file
# and parse it, here is an example of the `cntinfo` tag
for element in tree.iter('cntinfo'):
for child in element.getchildren():
print "{0.tag}: {0.text}".format(child)
</code></pre>
<p>这将打印:</p>
^{pr2}$
<p>同样,您也可以逐步检查文件中的其他元素;但我强烈建议您使用XSLT。</strong></p>
<hr/>
<p>此代码段将使用xslt样式表(从<a href="https://stackoverflow.com/questions/365312/xml-to-csv-using-xslt">this question</a>)将xml文档转换为csv:</p>
<pre><code># First, we load the stylesheet
with open(r'd:\test.xsl') as f:
temp = etree.parse(f)
style_sheet = etree.XSLT(temp)
# Apply it to the previously parsed document tree:
converted_xml = style_sheet(tree)
# Print the results:
str(converted_xml)
</code></pre>
<p>这将为您提供:</p>
<pre><code>'"", "<>", "ATGISTablelands Regional Council"\r"<>", "EPSG",
"GDA94GRS80Map Grid of AustraliaZone 55 (144E - 150E)"\r"2012", "Completed"
\r"OngoingCompleted", "As RequiredAs Required"\r"FileType:", "Format:Size"
, "Internal Use Only"\r"~TBC~", "Metadata imported.L:\\Data_Admin\\Metadat
aGenerator\\trc_Metadata_Template.xml2012120615341400", "~TBC~", "~TBC~",
"~TBC~", "~TBC~"\r"Atherton Tablelands GIS", "GIS Coordinator", "PO
Box 1616, 8 Tolga Rd", "Atherton", "QLD", "AUSTRALIA", "4883", "0
7 40918600", "07 40917035", "info@atgis.com.au"\r""\r'
</code></pre>