python - 使用python访问xml文件中的值
问题描述
<root>
<body>
<structure>
<matrix name="abc">
<def>
<item name="name1" />
<item name="name2" />
</def>
</matrix>
<matrix name="def">
<def>
<item name="name3" />
<item name="name4" />
</def>
<options>
<option par1="okay" par2="bye" par3="hello" />
<option par1="wrong" par2="how are you" par3="im fine" />
</options>
</matrix>
</structure>
</body>
</root>
我一直在尝试访问该<options>
节点,尤其是它的属性(par1
, par2
, par3
)。
如何使用 Python 做到这一点?我一直在努力xml.etree.ElementTree
。
解决方案
import xml.etree.ElementTree as ET
root = ET.fromstring(xml)
for matrix in root.find('body').find('structure'):
options = matrix.find('options')
if options:
for option in options:
print(option.attrib['par1'])
print(option.attrib['par2'])
print(option.attrib['par3'])
您可以按照路径选择并使用.attrib
来获取属性。或者,直接find
使用分层路径的元素:
for options in root.find('body/structure/matrix/options'):
for option in options:
print(option.attrib['...'])
推荐阅读
- javascript - 使用 ytdb-core 播放视频时获取视频的当前时间戳
- python - 如何在kivy中动态添加项目到滚动视图
- scala - sbt-crossproject 插件能否支持两个具有两个独立主类的 Scala.js 构建,两者的输出都由 scalajs-bundler 插件管理?
- sql - 员工排班系统
- javascript - JavaScript:使用动态表格和多列多行打印为 PDF
- javascript - 附加html中的d3按钮回调
- ruby-on-rails - URI::InvalidURIError: bad URI(is not URI?) when deploying HEROKU app with multiple databases
- android - 无法从 ZXing 调用 IntentIntegrator 类?
- tsql - 构建时出现 SSDT 错误:应为 XML,但遇到的是 JSON
- linux - 如何从 GDB 读取二进制内存转储?