我想使用python将xml文件转换为文本文件

时间:2018-11-12 12:59:44

标签: python xml-parsing

我有一个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文件,想将它们全部转换为文本文件。.也想循环使用它来获取许多这样的文件。

1 个答案:

答案 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