<p>Python,目前正在使用2.7,但可以很容易地更改为最新和最好的版本</p>
<p>需要解析此XML并返回项中包含的INT值。这不是我的XML。这来自一个企业级软件</p>
<pre><code><counters>
<item name="stats/counters/session/responsetime" type="int">1047</item>
<item name="stats/counters/session/responsecount" type="int">7423</item>
<item name="stats/counters/init/inittime" type="int">36339</item>
<item name="stats/counters/init/fetchtime" type="int">8097</item>
<item name="stats/connectionsetups" type="int">579</item>
<item name="stats/activesessions" type="int">4294967289</item>
<item name="stats/activeconnections" type="int">0</item>
</counters>
</code></pre>
<p>代码:</p>
<pre><code>import xml.etree.ElementTree as ET
import xml
def _getstats():
resp = requests.get(urlStats)
#Writing XML to disk. This makes parsing it MUCH easier.
with open('stats_10.xml', 'wb') as f:
f.write(resp.content)
f.close()
tree = ET.parse('stats_10.xml')
root = tree.getroot()
active = root.find('stats/activesessions')
print active
</code></pre>
<p>回报总是零。我用的是ElementTree。通读文档(<a href="https://docs.python.org/3.0/library/xml.etree.elementtree.html" rel="nofollow noreferrer">https://docs.python.org/3.0/library/xml.etree.elementtree.html</a>)和许多页面</p>
<p>我认为问题在于解析器不理解斜杠</p>
<p>试图使用“active=int(root['stats/activesessions'])代替返回此错误的root find按名称拉取:</p>
<pre><code>TypeError: list indices must be integers, not str
</code></pre>
<p>也尝试过xmltodict,但这比使用ElementTree更糟糕。错误总是“列表索引必须是整数”</p>
<p>最后,这是一个动态XML文档。按行索引不是一个选项,因为在空闲时,软件返回10行,在加载时返回15行,其他行与其他行混合。我得按孩子的名字取</p>
<p>提前感谢您的帮助</p>
<p>补充:</p>
<p>我可以通过XML运行迭代并提取值。但是,如上所述,XML将发生变化,行数将增加,从而使我的索引失效</p>
<pre><code>active = root[5].text
print active
</code></pre>