使用 Python 解析 XML 文档 - 搜索特定元素,获取其中的字符串
Parsing XML Document with Python - Search specific Elements, get String inside
我得到了一个 XML-Doc,其结构如下:
<defaults>
<options>
<param name="userMail">user@mail.org</param>
<param name="adminMail"admin@mail.org</param>
<param name="language">en</param>
<param name="country">EN</param>
<> ... </>
</defaults>
</options>
在“options”标签中我有很多参数元素,我想搜索“userMail”和“adminMail”元素。
tree = ET.parse("file_config.xml")
root = tree.getroot()
for admin in root.iter("param"):
print(admin.text)
效果很好,但我得到了全部输出 (user@mail.org, admin@mailorg, en, EN)。
如何只搜索“userMail”和“adminMail”元素并将它们分别存储在一个变量中?
我用xml.etree.ElementTree作为外星人。
见下文(对用户邮件执行相同操作)
import xml.etree.ElementTree as ET
xml = '''<defaults>
<options>
<param name="userMail">user@mail.org</param>
<param name="adminMail">admin@mail.org</param>
<param name="language">en</param>
<param name="country">EN</param>
</options>
</defaults>'''
root = ET.fromstring(xml)
admin_mail = root.find('.//param[@name="adminMail"]').text
print(admin_mail)
输出
admin@mail.org
我得到了一个 XML-Doc,其结构如下:
<defaults>
<options>
<param name="userMail">user@mail.org</param>
<param name="adminMail"admin@mail.org</param>
<param name="language">en</param>
<param name="country">EN</param>
<> ... </>
</defaults>
</options>
在“options”标签中我有很多参数元素,我想搜索“userMail”和“adminMail”元素。
tree = ET.parse("file_config.xml")
root = tree.getroot()
for admin in root.iter("param"):
print(admin.text)
效果很好,但我得到了全部输出 (user@mail.org, admin@mailorg, en, EN)。
如何只搜索“userMail”和“adminMail”元素并将它们分别存储在一个变量中?
我用xml.etree.ElementTree作为外星人。
见下文(对用户邮件执行相同操作)
import xml.etree.ElementTree as ET
xml = '''<defaults>
<options>
<param name="userMail">user@mail.org</param>
<param name="adminMail">admin@mail.org</param>
<param name="language">en</param>
<param name="country">EN</param>
</options>
</defaults>'''
root = ET.fromstring(xml)
admin_mail = root.find('.//param[@name="adminMail"]').text
print(admin_mail)
输出
admin@mail.org