gpt4 book ai didi

Python 和 XML : Update an attribute and write file problems

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:59 25 4
gpt4 key购买 nike

我正在尝试更新子项的属性,然后将该更新的元素写入文档。我遇到此错误:'AttributeError:元素实例没有属性'getiterator''

我在拼凑了一堆教程和资源后制作了这个,所以让我知道是否还有其他突出的事情(不太确定我在做什么)。谢谢!

这是我到目前为止所拥有的:

在 XML 文档中:

<?xml version="1.0" ?>
<notes>
<prepData a_assetType="Geometry" b_assetSel="[u'pPyramid1', u'pTorus1']"/>
<prepData a_assetType="Rig" b_assetSel="[u'pPyramid1']"/>
<prepData a_assetType="Controls" b_assetSel="[u'pPyramid1']"/>
</notes>

编写 XML 代码:

xml_file_path = "{0}/{1}_prepData.xml".format( info_dir, asset_type )
doc = ET.parse( xml_file_path )
dom = parse( xml_file_path )
root = doc.getroot()

nodes = dom.getElementsByTagName( 'prepData' )

match = []
for node in nodes:
if node.attributes['a_assetType'].value == asset_type:
match.append( node )

for node in match:
node.setAttribute( "b_assetSel", str(asset_sel) )


out = ET.tostring( node )
dom = minidom.parseString( out )
xml_file = open("{0}/{1}_prepData.xml".format( info_dir, asset_name ), "w")
xml_file.write( dom.toprettyxml() )
xml_file.close()

最佳答案

使用xml.etree.ElementTree搜索并设置元素的属性:

import xml.etree.ElementTree as ET

doc = ET.parse(xml_file_path)
root = doc.getroot()

for elm in root.findall(".//prepData[@a_assetType='%s']" % asset_type):
elm.attrib["b_assetSel"] = str(asset_sel)

out = ET.tostring(root)
print(out)

这里我们使用一个简单的 XPath expression查找具有所需 a_assetType 属性值的所有 prepData 元素。对于找到的每个元素,我们通过 .attrib 设置 b_assetSel 属性值.

关于Python 和 XML : Update an attribute and write file problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com