<p>我正在尝试从此网页获取值:</p>
<pre><code>This XML file does not appear to have any style information associated with it. The document tree is shown below.
<ArrayOfVwHistoryDetail xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<vwHistoryDetail>
<idVariable>2561</idVariable>
<DateTime>2020-12-01T00:00:00</DateTime>
<idPeriodType>1</idPeriodType>
<Value>28671555</Value>
<ValueDetail>4415</ValueDetail>
</vwHistoryDetail>
<vwHistoryDetail>
<idVariable>2561</idVariable>
<DateTime>2020-12-02T00:00:00</DateTime>
<idPeriodType>1</idPeriodType>
<Value>28675970</Value>
<ValueDetail>4279</ValueDetail>
</vwHistoryDetail>
<vwHistoryDetail>
<idVariable>2561</idVariable>
<DateTime>2020-12-03T00:00:00</DateTime>
<idPeriodType>1</idPeriodType>
<Value>28680249</Value>
<ValueDetail>3975</ValueDetail>
</vwHistoryDetail>
<vwHistoryDetail>
<idVariable>2561</idVariable>
<DateTime>2020-12-04T00:00:00</DateTime>
<idPeriodType>1</idPeriodType>
<Value>28684224</Value>
<ValueDetail>4236</ValueDetail>
</vwHistoryDetail>
</ArrayOfVwHistoryDetail>
</code></pre>
<p>我使用以下代码进行了测试:</p>
<pre><code>import xml.etree.ElementTree as ET
from urllib import request
url = "http://SomeSite/WebService.asmx/LoadVariableHistory?username=USERNAME&password=PASSWORD&variableName=CBT2_G_PRM_FB2&startDateTime=2020-12-01&endDateTime=2020-12-02&sampling=3"
print ("Obter: ", url)
html = request.urlopen(url)
data = html.read()
print("Obtido: ",len(data),"caracteres")
tree = ET.fromstring(data)
results = tree.findall('Value')
for i in results:
print(i)
</code></pre>
<p>出于安全原因,我隐藏了完整的URL。
我做错了什么,没有得到这些值?我需要完成这部分,这样我就可以用DataTime:Value构建一个字典</p>
<p>先谢谢你</p>
<pre><code>tree = ET.fromstring(data)
for detail in tree.findall('vwHistoryDetail'):
v = detail.find('Value').text
print(v)
</code></pre>
<p>最好通过对象循环并提取子元素,而不是直接获取子元素,因为Value可能是在文档的不同部分重用的标记</p>