首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python3xml findall空输出

Python3xml findall空输出
EN

Stack Overflow用户
提问于 2018-05-26 10:42:12
回答 1查看 282关注 0票数 0

我试图找出以下问题:

我希望获得标记的“type”属性(cpe-23标记是可选的,并且是XML模式中任何类型的标记)。

代码语言:javascript
复制
<cpe-23:deprecated-by ... type="NAME_CORRECTION"/>

阅读堆栈溢出中的其他问题会导致以下代码:

代码语言:javascript
复制
import xml.etree.ElementTree as ET
tree = ET.parse(".../official-cpe-dictionary_v2.3.xml")
root = tree.getroot()

for child in root.findall('cpe-item/cpe-23:cpe23-item/cpe-23:deprecation/cpe-23:deprecated-by',
                      namespaces={'cpe-23': 'http://scap.nist.gov/schema/cpe-extension/2.3'}):

    print(child.attrib['name'], child.attrib['type'])

我现在的问题是,我只得到了一个空的输出,我的程序停止了代码:0。

对如何解决这个问题有什么想法吗?

事先非常感谢!

来源(XML-文件):

代码语言:javascript
复制
<cpe-list ...>
    <generator>
       ...
    </generator>
    <cpe-item name="cpe:/a:3com:tippingpoint_ips_tos:2.2.3" deprecated="true" deprecation_date="2010-12-28T17:36:02.240Z">
        <title xml:lang="en-US">3Com TippingPoint IPS TOS 2.2.3</title>
        <cpe-23:cpe23-item name="cpe:2.3:a:3com:tippingpoint_ips_tos:2.2.3:*:*:*:*:*:*:*">
          <cpe-23:deprecation date="2010-12-28T12:36:02.240-05:00">
            <cpe-23:deprecated-by name="cpe:2.3:o:3com:tippingpoint_ips_tos:2.2.3:*:*:*:*:*:*:*" type="NAME_CORRECTION"/>
          </cpe-23:deprecation>
        </cpe-23:cpe23-item>
    </cpe-item>
    <cpe-item ...>
        ...
    </cpe-item>
    ...
</cpe-list>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-27 13:23:16

我自己读了图书馆的医生。没有输出的原因是Element.findall()函数只查看direkt子函数。"cpe-23:cp23-item“是根节点的孙辈。

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

https://stackoverflow.com/questions/50541891

复制
相关文章

相似问题

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