gpt4 book ai didi

python - Python 中的 XML 解析问题 - 找不到 findtext

转载 作者:太空宇宙 更新时间:2023-11-04 07:46:31 26 4
gpt4 key购买 nike

我尝试用代码解析 XML

import urllib2
from xml.etree import ElementTree

if __name__ == '__main__':
print 'hello'
result = urllib2.urlopen('http://localhost/conf.xml').read()
xml = ElementTree.fromstring(result)
print result
print xml.findtext('.//type')

当我打印结果时,我得到了所有的 xml 文件,这没问题,但最后一行 ( xml.findtext) 总是返回 None (我有带有类型和值 mstp 的标签)。有人可以帮我吗?我在 StackOverflow 上浏览过

How to parse xml in Python on Google App Engine但我没有得到 (.//type ) 的结果。

有xml文件

<router>
<datalink
type="mstp"
network="13"
mac="18"
hopcount="8">
<mqueue
name="/mstp1"
msgnum="10"
msgsize="768"
/>
<mstp
port="/dev/ttySx"
baud="9600|19200|38400|76800"
Nmax_info_frames="1+"
Nmax_master="127-"
Npoll="50"
Nretry_token="1"
Nmin_octets="4"
Tframe_abort="60-100"
Tframe_gap="20"
Tno_token="500"
Tpostdrive="15"
Treply_delay="250"
Treply_timeout="255-300"
Troff="29-40"
Tslot="10"
Tturnaround="40"
Tusage_delay="15"
Tusage_timeout="20-100"
/>
</datalink>
<datalink
type="bip"
network="12"
mac="192.168.0.146:47808"
hopcount="8"
>
<mqueue
name="/bip1"
msgnum="10"
msgsize="2048"
/>
<bip
bbmd="address|self|none"
bmask="bmask"
>
<bbmd
edit="yes|no"> <!-- dozvoljeno menjanje tabele -->
<bdt address="192.168.0.131:0xBAC0:192.168.0.255"/> <!-- adresa:port:bmask -->
<bdt address="192.168.0.157:0xBAC0:192.168.0.255"/>
</bbmd>
</bip>
</datalink>
<network
unavailable="90%"
available="40%"
hop-dec="1">
<mqueue
name="/network"
msgnum="40"
msgsize="2048"
/>
<!-- -->
<hrpolicy
general="ignore|activate|performance|demand"
performance="num"
conntime="num"
/>
</network>
<application>
<mqueue
name="/application"
msgnum="10"
msgsize="2048"
/>
</application>
</router>

最佳答案

这与 namespace 无关。

问题 1:type 不是标签,它是标签为 datalink 的元素的 attribute

问题2:xml.findtext()返回元素的text组件;那不是你想要的。

你想要的是:

elem = xml.find(".//datalink")
print repr(elem)
print elem.get("type")

输出:

<Element 'datalink' at 0x019D0AB8>
mstp

关于python - Python 中的 XML 解析问题 - 找不到 findtext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6122681/

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