我有一个FGDC(联邦地理数据委员会)XML文档,如下例所示:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<eainfo>
<detailed>
<attr>
<attrlabl>Field1</attrlabl>
<attrdef>Some definition</attrdef>
<attrdefs>producer defined</attrdefs>
<attrdomv>
<rdom>
<rdommin>0</rdommin>
<rdommax>100</rdommax>
<attrunit>centimeters</attrunit>
</rdom>
</attrdomv>
</attr>
<attr>
<attrlabl>Field2</attrlabl>
<attrdef>Some other definition</attrdef>
<attrdefs>producer defined</attrdefs>
<attrdomv>
<rdom>
<rdommin>-10</rdommin>
<rdommax>20</rdommax>
<attrunit>centimeters</attrunit>
</rdom>
</attrdomv>
</attr>
</detailed>
</eainfo>
</metadata>
我正在尝试编写一个Python脚本来根据数据值电子表格来编辑rdommin
和rdommax
值。因此,例如,数据中的Field1
的最小值只能为4,因此我需要将XML中该属性的rdommin
从0更改为4。
如何在XML中搜索Field1?到目前为止,我已经尝试过类似的事情:
from xml.etree import ElementTree as ET
tree = ET.parse('some/metadata.xml')
root = tree.getroot()
x = root.find('./eainfo/detailed/attr/attrlabl') == "Field1"
x = root.findall('./eainfo/detailed/attr/[@attrlabl"Field1"]')
哪个返回False
和[]
。