我有一个xml字符串,如下所示:
我正在使用元素树库
<?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>
我想得到一些类别节点的值,让我们称之为通缉Parms 1和2.但是我得到一个AttributeError可能是因为我写的代码无法找到Category项的子节点。
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)
答案 0 :(得分:4)
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)