gpt4 book ai didi

Python - 元素树查找

转载 作者:行者123 更新时间:2023-12-05 08:56:29 24 4
gpt4 key购买 nike

我有一个看起来像这样的 xml 字符串:

我正在使用 Element Tree 库

<?xml version="1.0" encoding="UTF-8"?>
<GetCategoriesResponse xmlns="urn:ebay:apis:eBLBaseComponents"><CategoryArray><Category><WantedParm1>true</WantedParm1><UnwantedParm1>true</UnwantedParm1><WantedParm2>20081</WantedParm2></Category></CategoryArray></GetCategoriesResponse>

我想获取类别节点的一些值,我们称它们为 Wanted Parms 1 和 2。但是我得到一个 AttributeError 可能是因为我编写的代码无法找到类别项的子节点。

AttributeError: 'NoneType' 对象没有属性 'text'。

import xml.etree.ElementTree as ET
XML = #Above Code in String
tree = ET.ElementTree(ET.fromstring(XML))
root = tree.getroot()
for Category in root[0]:
one = Category.find("WantedParm1").text
two = Category.find("WantedParm2").text
print(one, two)

最佳答案

XML 元素位于默认命名空间 urn:ebay:apis:eBLBaseComponents 因此所有标记都以命名空间的完整 URI 为前缀。

更改您的 find() 参数以包含 URI 应该有效。

import xml.etree.ElementTree as ET
XML = #Above Code in String
tree = ET.ElementTree(ET.fromstring(XML))
root = tree.getroot()
for Category in root[0]:
one = Category.find("{urn:ebay:apis:eBLBaseComponents}WantedParm1").text
two = Category.find("{urn:ebay:apis:eBLBaseComponents}WantedParm2").text
print(one, two)

您可以在元素树文档中找到有关处理 namespace 的更多信息 here或者这个堆栈溢出 post .

关于Python - 元素树查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40251929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com