【发布时间】:2021-12-27 05:57:19
【问题描述】:
感谢任何帮助!使用下面的示例 XML 文件,我得到了不正确的输出。
Incorrect output:
Emp_F_Name: Jill
Emp_M_Name: H
Emp_L_Name: Jones
Desired output:
Emp_F_Name: Jill
Emp_M_Name: None or NULL
Emp_L_Name: Jones
我不确定为什么 find_next 函数超出了声明的属性(员工)。
<?xml version="1.0" encoding="utf-8"?>
<org value="Tech">
<employee>
<name>
<family>Jones</family>
<given>Jill</given>
</name>
</employee>
<manager>
<name>
<family>Fisher</family>
<given>Junior</given>
<given>H</given>
</name>
</manager>
</org>
这是我正在使用的代码。
employee = soup.find("employee")
for i in employee.find_all('name'):
fname = employee.find('given')
print("Emp_F_Name: ", fname.get_text())
mname = fname.find_next('given')
print("Emp_M_Name: ", mname.get_text())
lname = employee.find('family')
print("Emp_L_Name: ", lname.get_text())
当我为经理运行相同的代码时,它似乎可以工作。
manager = soup.find("manager")
【问题讨论】:
-
既然你在处理xml,你最好使用像lxml这样的xml解析器。
标签: python arrays xml beautifulsoup attributes