python - 在 Python 中使用 ElementTree 解析 XML

标签 python xml parsing xml-parsing elementtree

我有这样的 XML:

<parameter>
 <name>ec_num</name>
 <value>none</value>
 <units/>
 <url/>
 <id>2455</id>
 <m_date>2008-11-29 13:15:14</m_date>
 <user_id>24</user_id>
 <user_name>registry</user_name>
</parameter>
<parameter>
 <name>swisspro</name>
 <value>Q8H6N2</value>
 <units/>

我想解析 XML 并提取 <value>位于<name>下方的条目条目标记为“swisspro”。 IE。我想解析并提取“Q8H6N2”值。

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

最佳答案

通过 lxml 可以更容易地完成,但这里是使用 ElementTree 库的解决方案:

import xml.etree.ElementTree as ET

data = """<parameters>
<parameter>
 <name>ec_num</name>
 <value>none</value>
 <units/>
 <url/>
 <id>2455</id>
 <m_date>2008-11-29 13:15:14</m_date>
 <user_id>24</user_id>
 <user_name>registry</user_name>
</parameter>
<parameter>
 <name>swisspro</name>
 <value>Q8H6N2</value>
 <units/>
</parameter>
</parameters>"""

tree = ET.fromstring(data)

for parameter in tree.iter(tag='parameter'):
    name = parameter.find('name')
    if name is not None and name.text == 'swisspro':
        print parameter.find('value').text
        break

打印:

Q8H6N2

这个想法非常简单:迭代所有 parameter 标签,检查 name 标签的值以及它是否等于 swisspro ,获取 value 元素。

希望有帮助。

关于python - 在 Python 中使用 ElementTree 解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367498/

相关文章:

parsing - 从 Scala 字符串中去除 HTML 标签

java - 使用 Jackson 解析没有标识符的 JSON 对象

python - 将 SVG 转换为 PDF(svglib + reportlab 不够好)

python - 在 Azure Databricks 上运行 Bokeh 服务器?

Python pymysql - 遍历 mysql 表键和值

java - 使用SimpleXml解析xml时第-1行报错

python - python 中令人困惑的 lambda 表达式

javascript - 插入流式 XML 数据数据库

c# - 读取复杂的 XML 属性

node.js - 如何在 express 权限中使用 "cookie-parser"以及 socket.io 中的 cookie 在哪里?