如何解决Python 2.6.6:无法从当前元素的直接子元素中提取文本
我按照 ElementTree tutorial 进行操作,使用那里提供的示例 XML 时得到的结果大致相同,但使用我自己的 XML 文件时得到了意想不到的结果。
例如,我试图从名为 marketCode
的所有 XML 标记中提取文本。我的示例 XML 文件:
<process_config>
<input name="dataIn">
<filePattern>
<marketCode>nyse</marketCode>
<midfix/>
<format>csv</format>
</filePattern>
</input>
<input name="brokerIn">
<filePattern>
<marketCode>lse</marketCode>
<midfix>.CBOENL</midfix>
<format>csv</format>
</filePattern>
</input>
</process_config>
我使用以下代码提取数据:
import xml.etree.ElementTree as ET,sys,os
my_file = 'test.xml'
tree = ET.parse(my_file)
root = tree.getroot()
for filePattern in root.findall('filePattern'):
marketCode = filePattern.find('marketCode').text
print(marketCode)
当我运行上面的代码时,我得到一个空的输出。预期输出如下:
nyse
lse
代码可能有什么问题?
解决方法
filePattern
不是根元素的直接子元素。
这有效:root.findall('.//filePattern')
。这也适用:root.findall('input/filePattern')
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。