我有一个xml文件,
this.props.value.contains('bar-1'), this.props.value.contains('bar-2'), this.props.value.contains('bar-3')
我想使用python将这个xml文件转换为文本文件,其中文本文件包含xmin,ymin,xmax,ymax的尺寸(值)。例如 我想将文本文件获取为
308,45,502,45,502,162,308,162,单词
<annotation>
<folder>all_images</folder>
<filename>0.jpg</filename>
<path>/home/vishnu/Documents/all_images/0.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>4250</width>
<height>5500</height>
<depth>1</depth>
</size>
<segmented>0</segmented>
<object>
<name>word</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>308</xmin>
<ymin>45</ymin>
<xmax>502</xmax>
<ymax>162</ymax>
</bndbox>
</object>
这个。 ..我有很多这样的xml文件,想将它们全部转换为文本文件。.也想循环使用它来获取许多这样的文件。
答案 0 :(得分:1)
假设您有一个名为file.xml
的文件,其中包含:
<annotation>
<folder>all_images</folder>
<filename>0.jpg</filename>
<path>/home/vishnu/Documents/all_images/0.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>4250</width>
<height>5500</height>
<depth>1</depth>
</size>
<segmented>0</segmented>
<object>
<name>word</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>308</xmin>
<ymin>45</ymin>
<xmax>502</xmax>
<ymax>162</ymax>
</bndbox>
</object>
</annotation>
然后在同一文件夹中的以下Python脚本为您提供了一个如何使用标准库ElementTree API来解析文件的想法:
import xml.etree.ElementTree as ET
tree = ET.parse("file.xml")
root = tree.getroot()
print(root.find("./folder").text)
print(root.find("./object/name").text)
print(root.find("./object/bndbox/xmin").text)
您将需要弄清楚如何将值写入自己的文本文件,但这应该很简单。有很多资源,例如this one。