繁体   English   中英

使用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>

我需要一种在“位置”中搜索特定“名称”并将文本传递给变量的方法。

我还需要一种遍历“对象”内部的每一行并预先形成函数的方法,例如在for循环中。

我乐于接受所有建议,我一直在疯狂尝试将其付诸实践。 如果您认为我应该以其他方式设置XML格式,那么我也愿意这样做。 先谢谢您的帮助。

[注意:您的XML格式不正确,因为您不能使用以数字开头的标签]
不知道您尝试了什么,但是有很多方法可以做到这一点,这是一种:

在“位置”中找到第一个名称为“ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM