如何更改XML文件中的数据?Matlab

时间:2016-11-01 05:29:15

标签: xml matlab

嗨,我知道有很多关于在Matlab中更改XML内容的问题。但是我尝试了这个问题的不同答案(出现在SO上),但它们在我的案例中不起作用。这是我的XML文件结构

<annotation>
    <folder>n02749479</folder>
    <filename>n02749479_54</filename>
    <source>
        <database>ImageNet database</database>
    </source>
    <size>
        <width>500</width>
        <height>277</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>n02749479</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>118</xmin>
            <ymin>69</ymin>
            <xmax>473</xmax>
            <ymax>193</ymax>
        </bndbox>
    </object>
</annotation>

我想更改<bndbox>代码中的代码。我想更改xmin,ymin,xmax,ymax的值。我能够获取这些标签的值,但我无法设置这些标签的值 的问题:
如何更改上述标签的内容?

1 个答案:

答案 0 :(得分:1)

Matlab支持java接口到xml。例如,要更改xmin中的bndbox,您可以执行以下操作:

xmlfile = fullfile('/tmp/test.xml');

DOMnode = xmlread(xmlfile);
bndbox_elem = DOMnode.getElementsByTagName('bndbox');
xmin_elem = bndbox_elem.item(0).getElementsByTagName('xmin');
xmin_elem.item(0).setTextContent('3233')

xmlwrite('/tmp/test2.xml',DOMnode);