在xml中查找元素

时间:2014-03-22 18:33:39

标签: xml python-2.7

我需要在xml文件中找到一个元素 我的挑战是元素名称是动态的,我只知道父元素。

作为一个例子:

<?xml version="1.0"?>
<config version="1.0" timestamp="xxxxxxxxxx">
    <a>
        <aa>
        ..
        </aa>
    <b>
        <bb>
        ...
        </bb>
    <c>
        <cc>
            <ccc>
                <cccc>
                    <????>.......</????>
                </cccc>

我需要找到元素????并阅读它的价值。

我已经尝试过了;

from xml.etree import ElementTree as ET
.....
for x in root.iter("cccc"):
   for y in x.iter():
   .....

但这似乎不是正确的解决方案。

感谢你的回答。

问候,
Robertico

1 个答案:

答案 0 :(得分:2)

找到父元素并获取第一个孩子:

from xml.etree import ElementTree as ET

data = """<?xml version="1.0"?>
<config version="1.0" timestamp="xxxxxxxxxx">
    <a>
        <aa>
        ..
        </aa>
    </a>
    <b>
        <bb>
        ...
        </bb>
    </b>
    <c>
        <cc>
            <ccc>
                <cccc>
                    <test>value to find</test>
                </cccc>
            </ccc>
        </cc>
    </c>
</config>"""

tree = ET.fromstring(data)

parent = tree.find('.//cccc')
print next(iter(parent)).text

打印:

value to find

或者,感谢@falsetru,只需print tree.find('.//cccc/*').text

希望有所帮助。