gpt4 book ai didi

python - lxml解析html :wrong result, 为什么

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:20 25 4
gpt4 key购买 nike

我的代码有一个奇怪的地方:

import lxml.html
myxml='''
<cooperate>
<job DecreaseHour="1" table="tpa_radio_sum">
</job>

<job DecreaseHour="2" table="tpa_radio_sum">
</job>


<job DecreaseHour="3" table="tpa_radio_sum">
</job>
</cooperate>
'''
root=lxml.html.fromstring(myxml)
nodes1=root.xpath('//job[@DecreaseHour="1"]')
nodes2=root.xpath('//job[@table="tpa_radio_sum"]')
print "nodes1=",nodes1
print "nodes2=",nodes2

我得到的是:
nodes1=[]

nodes2=[ Element job at 0x1241240,    
Element job at 0x1362690,
Element job at 0x13626c0]

为什么 nodes1[]?这是一件很奇怪的事情。为什么?

最佳答案

因为您使用的是 html 解析器,所以所有属性都变为小写:

>>> root.xpath("//job")[0].attrib
{'table': 'tpa_radio_sum', 'decreasehour': '1'}

您可以使用真正的 xml 解析器:

>>> import lxml.etree
>>> root = lxml.etree.fromstring(myxml)
>>> root.xpath('job[@DecreaseHour="1"]')
[<Element job at 0x293daa8>]

关于python - lxml解析html :wrong result, 为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8968475/

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