首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.6.6:无法从当前元素的直接子元素中提取文本

Python2.6.6:无法从当前元素的直接子元素中提取文本
EN

Stack Overflow用户
提问于 2021-04-11 14:56:56
回答 1查看 38关注 0票数 0

我遵循ElementTree教程,在使用那里提供的样例XML时得到的结果基本相同,但在使用自己的XML文件时却得到了意想不到的结果。

例如,我试图从所有名为marketCode的XML标记中提取文本。我的示例XML文件:

代码语言:javascript
复制
<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>

我使用以下代码提取数据:

代码语言:javascript
复制
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)

当我运行上面的代码时,我得到一个空的输出。预期产出如下:

代码语言:javascript
复制
nyse
lse

代码可能有什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-14 14:06:52

filePattern不是根元素的直接子元素。

这是可行的:root.findall('.//filePattern')。这也适用于:root.findall('input/filePattern')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67046470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档