XML解析以访问标记

时间:2017-08-21 07:59:07

标签: xml python-2.7 xml-parsing lxml

我有XML文件,我想获取标签,编辑必要的元素并编写新文件(更新的XML)。

<vdu xmlns="test:file">
<lsm>
    <m-id>v1</m-id>
    <name>v1</name>
    <communication>bi</communication>
    <states>
        <s-name>stage1</s-name>
        <state>
            <s-type>defaultState</s-type>
            <s-func>
                <p-name>pkgname</p-name>
                <f-list>
                    <f-name>funcNAME</f-name>
                    <f-arg>{&amp;}</f-arg>
                </f-list>
            </s-func>
        </state>
        <lib-path>libpath</lib-path>
        <e-list>
            <e-name>noEvent</e-name>
            <event>
                <nss>INC</nss>
                <nfs>INC</nfs>
                <actions>
                    <p-name>pkgName</p-name>
                    <f-list>
                        <f-name>toF</f-name>
                        <f-arg></f-arg>
                    </f-list>
                </actions>
            </event>
        </e-list>

但是我无法从XML中获取文本。我尝试了以下几件事。

import xml.etree.ElementTree as ET
root = ET.parse(r'C:\Users\Sample\file.xml').getroot()

for child in root:
    print child.tag
    for child in child.iter('s-type'):
        print child

输出:

 <Element '{est:file}lsm
 []

此外,我尝试使用lxml(仍然在探索),没有得到预期的答案。任何帮助将不胜感激。

root.xpath("//lsm/states/e-list/e-name/text()") 

输出:

[]

但我可以使用root[0][0].text

访问值

0 个答案:

没有答案