Python 如何从XML文件中获取值?

Python 如何从XML文件中获取值?,python,xml,xml-parsing,discord.py,Python,Xml,Xml Parsing,Discord.py,我有那个xml文件,我只需要从streamid64(76561198875082603)中获取值 76561198875082603 ... 在线 的 ... 平民的 3. ... ... ... 0 没有一个 0 ... 2018年12月8日 0 ... ... ... ... ... 现在我只有那个代码: xml_url = f'{url}?xml=1' 那我就不知道该怎么办了。使用lxml相当简单: import lxml.html as lh steam = "&quo

我有那个xml文件,我只需要从
streamid64
76561198875082603
)中获取值


76561198875082603
...
在线 的
...
平民的
3.
...
...
...
0
没有一个
0
...
2018年12月8日
0
...
...
...
...
...
现在我只有那个代码:

xml_url = f'{url}?xml=1'

那我就不知道该怎么办了。

使用lxml相当简单:

import lxml.html as lh

steam = """your html above"""

doc = lh.fromstring(steam)
doc.xpath('//steamid64/text()')
输出:

['76561198875082603']
编辑:

对于实际的url,很明显底层数据是xml;因此,更好的方法是:

import requests
from lxml import etree

url = 'https://steamcommunity.com/id/themakci7m87/?xml=1'

req = requests.get(url)
doc = etree.XML(req.text.encode())
doc.xpath('//steamID64/text()')

相同的输出。

您最好使用名为

lxml是一个外部XML库,需要单独安装

见下文

import requests
import xml.etree.ElementTree as ET

r = requests.get('https://steamcommunity.com/id/themakci7m87/?xml=1')
if r.status_code == 200:
  root = ET.fromstring(r.text)
  steam_id_64 = root.find('./steamID64').text
  print(steam_id_64)
else:
  print('Failed to read data.')
输出:

76561198875082603

解析文件并提取值是否正常?如果没有,为什么不呢?使用解析XML数据并提取值(文档中有一个简短的教程)。但是我得到了空输出[]
XML_url=f'{(url)}?XML=1'steam=XML_url doc=lh.fromstring(steam)输出=doc.xpath('//steamID64/text()')wait ctx.send(steam)wait ctx.send(doc.xpath('//steamID64/text()'))等待ctx.send(output)
@THEMakci7m87问题出在
xml\u url=f'{(url)}?xml=1'steam=xml\u url
的某个地方。你要么得到一个字符串并用答案中的
lh.fromstring
解析它,要么把它放入一个文件并用
lh.parse(filename)
解析它。如果您对此有问题,您可能必须将其作为一个单独的问题与您正在使用的实际url一起发布。
doc=lh.fromstring(steam)
gives value=
I test
xml\u url=f'{(url)}?xml=1'steam=xml\u url