使用 ElementTree 将 XML 属性解析为变量
Parse XML attribute to variable with ElementTree
你好,我在 Maya 中编写了一些代码,运行 解决了 ElementTree 的一些问题。我需要阅读此 xml 或类似内容的帮助。 XML 是根据选择生成的,因此它可以更改。
<root>
<Locations>
<1 name="CacheLocation">C:\Users\daunish\Desktop</1>
</Locations>
<Objects>
<1 name="Sphere">[u'pSphere1', u'pSphere2']</1>
<2 name="Cube">[u'pCube1']</2>
</Objects>
</root>
我需要一种在 "Locations" 中搜索特定 "name" 并将文本传递给变量的方法。
我还需要一种方法来遍历 "Objects" 中的每一行并执行一个函数,就像在 for 循环中一样。
我乐于接受所有建议,我一直在疯狂地尝试让它发挥作用。如果您认为我应该以不同的方式格式化 XML,我也愿意。在此先感谢您的帮助。
[注意:您的 XML 格式不正确,因为您不能使用以数字开头的标签]
不确定您尝试了什么,但有很多方法可以做到这一点,这里是一个:
在 Locations 中找到名称为 CacheLocation 的第一个元素:
>>> filename = root.find("./Locations/*[@name='CacheLocation']").text
>>> filename
'C:\Users\daunish\Desktop'
迭代对象中的所有元素:
>>> import ast
>>> for target in root.find("./Objects"):
... for i in ast.literal_eval(target.text):
... print(target.get('name'), i)
Sphere pSphere1
Sphere pSphere2
Cube pCube1
你好,我在 Maya 中编写了一些代码,运行 解决了 ElementTree 的一些问题。我需要阅读此 xml 或类似内容的帮助。 XML 是根据选择生成的,因此它可以更改。
<root>
<Locations>
<1 name="CacheLocation">C:\Users\daunish\Desktop</1>
</Locations>
<Objects>
<1 name="Sphere">[u'pSphere1', u'pSphere2']</1>
<2 name="Cube">[u'pCube1']</2>
</Objects>
</root>
我需要一种在 "Locations" 中搜索特定 "name" 并将文本传递给变量的方法。
我还需要一种方法来遍历 "Objects" 中的每一行并执行一个函数,就像在 for 循环中一样。
我乐于接受所有建议,我一直在疯狂地尝试让它发挥作用。如果您认为我应该以不同的方式格式化 XML,我也愿意。在此先感谢您的帮助。
[注意:您的 XML 格式不正确,因为您不能使用以数字开头的标签]
不确定您尝试了什么,但有很多方法可以做到这一点,这里是一个:
在 Locations 中找到名称为 CacheLocation 的第一个元素:
>>> filename = root.find("./Locations/*[@name='CacheLocation']").text
>>> filename
'C:\Users\daunish\Desktop'
迭代对象中的所有元素:
>>> import ast
>>> for target in root.find("./Objects"):
... for i in ast.literal_eval(target.text):
... print(target.get('name'), i)
Sphere pSphere1
Sphere pSphere2
Cube pCube1