我有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>{&}</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