我需要帮助使用 Python 和 elementTree 库调整我的 XML 文件。
对于某些背景,我不是学生,而是在工业界工作。我希望通过使这些更改自动化来为自己节省大量的手动工作,通常我会使用我更熟悉的 C++ 等语言来完成这项工作。然而,在我的小组中使用 Python 是一个推动力,所以我将其用作功能和学习练习。
您能否更正我对术语的使用和理解?我不只是想让代码工作,而是要知道我对它如何工作的理解是正确的。
问题本身:
目标:从 XML 文件中删除子元素“权重”。
使用 xml 代码(假设它被称为“example.xml”):
<XML_level_1 created="2014-08-19 16:55:02" userID="User@company">
<XML_level_2 manufacturer="company" number="store-25235">
<padUnits value="mm" />
<partDescription value="Part description explained here" />
<weight value="5.2" />
</XML_level_2>
</XML_level_1>
到目前为止,我有以下代码:
from xml.etree import ElementTree
current_xml_tree = ElementTree.parse(filename_path) # Path to example.xml
current_xml_root = current_xml_tree.getroot()
current_xml_level_2_node = current_xml_root.findall('XML_level_2')
# Extract "weight" value for later use
for weight_value_elem in current_xml_root.iter('weight'):
weight_value = weight_value_elem.get('value')
# Remove weight sub-element from XML
# -------------------------------------
# Get all nodes entitled 'weight' from element
weight_nodes = current_xml_root.findall('weight')
print weight_nodes # result is an empty list
print weight_value_elem # Location of element 'weight' is listed
for weight_node_loc in current_xml_tree.iter('weight'):
print "for-loop check : loop has been entered"
current_xml_tree.getroot().remove(weight_value_elem)
print "for-loop has been processed"
print "Weight line removed from ", filename_path
# Write changes to XML File:
current_xml_tree.write(filename_path)
我已经阅读了这个有用的资源,但已经到了我被卡住的地步。
第二个问题:在这个上下文中节点和元素的关系是什么?
我来自有限元背景,其中节点被理解为元素的一部分,定义了创建元素的部分/角边界。但是,我认为术语在这里的使用方式不同,因此节点不是元素的子集,我错了吗?这两个术语是否仍然以类似的方式相关?