已解决(pandas.read_xml读取xml报错)ValueError: xpath does not return any nodes. Be sure row level nodes are in xpath. If document uses namespaces denoted with xmlns, be sure to define namespaces and use them in xpath.
报错代码
粉丝群一个小伙伴想用Python读取xml报错,但是还是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:
import pandas as pd
import numpy as np
test = """
<collection shelf="New Arrivals">
<class className="1班">
<code>2022001</code>
<number>10</number>
<teacher>小白</teacher>
</class>
<class className="2班">
<code>2022002</code>
<number>20</number>
<teacher>小红</teacher>
</class>
<class className="3班">
<code>2022003</code>
<number>30</number>
<teacher>小黑</teacher>
</class>
</collection>
"""
# 只读取className
df = pd.read_xml(test, xpath=".//className")
print(df)
报错信息截图如下所示:
报错翻译
报错信息翻译如下:
值错误 :xpath不返回任何节点。确保行级节点位于xpath中。若文档使用用xmlns表示的名称空间,请确保定义名称空间并在xpath中使用它们。
报错原因
报错原因:
代码错误,Xpath定位写错了,得定位到已有标签上
解决方法
定位到已有的class标签上:
df = pd.read_xml(test, xpath=".//class")
运行成功:
以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!
千人全栈VIP答疑群联系博主帮忙解决报错
由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
-
优点:作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!
-
专栏福利:简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
-
注意:如果希望得到及时回复,订阅专栏后私信博主进千人VIP答疑群