【问题标题】:Parsing XML node values with ElementTree in Python在 Python 中使用 ElementTree 解析 XML 节点值
【发布时间】:2014-04-18 01:21:18
【问题描述】:

我有以下 XML:

<part>
 <part_id>151</part_id>
 <part_name>BBa_B0034</part_name>
 <part_short_name>B0034</part_short_name>
 <part_short_desc>RBS (Elowitz 1999) -- defines RBS efficiency</part_short_desc>
 <part_type>RBS</part_type>
 <release_status>Released HQ 2013</release_status>
 <sample_status>In stock</sample_status>
 <part_results>Works</part_results>
 <part_nickname/>
 <part_rating>1</part_rating>
 <part_url>http://parts.igem.org/Part:BBa_B0034</part_url>
 <part_entered>2003-01-31</part_entered>

我想提取一些值。

例如,我想从&lt;part_name&gt; 中输出BBa_B0034

我将如何使用 ElementTree 来做到这一点?

【问题讨论】:

标签: python xml elementtree


【解决方案1】:

您需要正确的 xml 才能使解析器正确。供参考使用Xml.etree Python

查看示例:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.fromstring('<part> <part_id>151</part_id> <part_name>BBa_B0034</part_name>     <part_short_name>B0034</part_short_name> <part_short_desc>RBS (Elowitz 1999) -- defines RBSefficiency</part_short_desc> <part_type>RBS</part_type> <release_status>Released HQ 2013</release_status> <sample_status>In stock</sample_status> <part_results>Works</part_results> <part_nickname/> <part_rating>1</part_rating> <part_url>http://parts.igem.org/Part:BBa_B0034</part_url> <part_entered>2003-01-31</part_entered></part>')
>>> tree.findall('./part_name')[0].text
'BBa_B0034'

【讨论】:

  • 谢谢你,但是当我尝试使用它时,我得到'列表索引超出范围' - 我正在解析来自网络的 xml,而不是使用'fromstring'。
  • 检查您的 xml 文本。与文件不同。两者都是流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多