Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用元素树用Python解析XML Soap响应_Python_Xml_Soap_Elementtree - Fatal编程技术网

使用元素树用Python解析XML Soap响应

使用元素树用Python解析XML Soap响应,python,xml,soap,elementtree,Python,Xml,Soap,Elementtree,我有一个这种格式的XML Soap响应,它具有以下信息用户名:Fulname:State:State Duration: <return> <columns> <values> <data>Username</data> <data>Full Name</data> <da

我有一个这种格式的XML Soap响应,它具有以下信息用户名:Fulname:State:State Duration:

<return>
        <columns>
            <values>
                <data>Username</data>
                <data>Full Name</data>
                <data>State</data>
                <data>State Duration</data>
            </values>
        </columns>
        <rows>
            <values>
                <data>user1@test.com</data>
                <data>User1</data>
                <data>Logged Out</data>
                <data>309</data>
            </values>
        </rows>
        <rows>
            <values>
                <data>user2@test.com</data>
                <data>User2</data>
                <data>Logged In</data>
                <data>165</data>
            </values>
        </rows>
        <rows>
            <values>
                <data>user3@test.com</data>
                <data>User3</data>
                <data>Logged Out</data>
                <data>109</data>
            </values>
        </rows>
   </return>

工作得很有魅力!!谢谢!我怎么称呼你?上帝?@richie你最好自己努力,StackOverflow不是回答你家庭作业问题的地方。
from xml.etree import ElementTree
root = ElementTree.fromstring(input_data['tmp'])
tree = ElementTree.parse(input_data['tmp'])
print tree.find('.//Data').text
input_data = """<return>
        <columns>
            <values>
                <data>Username</data>
                <data>Full Name</data>
                <data>State</data>
                <data>State Duration</data>
            </values>
        </columns>
        <rows>
            <values>
                <data>user1@test.com</data>
                <data>User1</data>
                <data>Logged Out</data>
                <data>309</data>
            </values>
        </rows>
        <rows>
            <values>
                <data>user2@test.com</data>
                <data>User2</data>
                <data>Logged In</data>
                <data>165</data>
            </values>
        </rows>
        <rows>
            <values>
                <data>user3@test.com</data>
                <data>User3</data>
                <data>Logged Out</data>
                <data>109</data>
            </values>
        </rows>
   </return>"""

from xml.etree import ElementTree
root = ElementTree.fromstring(input_data)
data = [c.text for c in root.findall('.//rows/values/data')]
i = 1
for u, l in zip(data[::4], data[2::4]):
    if l == 'Logged In':
        print('"%i" Name of logged in users - "%s"' % (i, u))
        i += 1
print('Duration: %i' % sum(int(d) for d in data[3::4]))
"1" Name of logged in users - "user2@test.com"
Duration: 583