簡體   English   中英

如何從 XML 文件中獲取價值?

[英]How to get value from XML file?

我有那個 xml 文件,我只需要從steamID64 ( 76561198875082603 ) 中獲取價值。

<profile>
 <steamID64>76561198875082603</steamID64>
 <steamID>...</steamID>
 <onlineState>online</onlineState>
 <stateMessage>...</stateMessage>
 <privacyState>public</privacyState>
 <visibilityState>3</visibilityState>
 <avatarIcon>...</avatarIcon>
 <avatarMedium>...</avatarMedium>
 <avatarFull>...</avatarFull>
 <vacBanned>0</vacBanned>
 <tradeBanState>None</tradeBanState>
 <isLimitedAccount>0</isLimitedAccount>
 <customURL>...</customURL>
 <memberSince>December 8, 2018</memberSince>
 <steamRating/>
 <hoursPlayed2Wk>0.0</hoursPlayed2Wk>
 <headline>...</headline>
 <location>...</location>
 <realname>
 <![CDATA[ THEMakci7m87 ]]>
 </realname>
 <summary>...</summary>
 <mostPlayedGames>...</mostPlayedGames>
 <groups>...</groups>
</profile>

現在我只有那個代碼:

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

然后我不知道該怎么辦。

使用 lxml 相當簡單:

import lxml.html as lh

steam = """your html above"""

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

Output:

['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()')

相同的 output。

您最好使用名為ElementTree的內置 XML 庫

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.')

output:

76561198875082603

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM