【问题标题】:XML Parsing with python minidom使用 python minidom 进行 XML 解析
【发布时间】:2015-09-28 23:08:51
【问题描述】:

我正在尝试 html 解析 XML 文件并获取要在列表中打印的标签内容。以下是 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>org.caltesting.mt.caaspp</groupId>
  <artifactId>mt-web</artifactId>
  <version>1.0.365-20150828.172422-3</version>
  <versioning>
    <latest>1.0.373-SNAPSHOT</latest>
    <versions>
      <version>1.0.365-SNAPSHOT</version>
      <version>1.0.366-SNAPSHOT</version>
      <version>1.0.367-SNAPSHOT</version>
      <version>1.0.368-SNAPSHOT</version>
      <version>1.0.369-SNAPSHOT</version>
      <version>1.0.370-SNAPSHOT</version>
      <version>1.0.372-SNAPSHOT</version>
      <version>1.0.373-SNAPSHOT</version>
    </versions>
    <lastUpdated>20150925021611</lastUpdated>
  </versioning>
</metadata>

我的 Python 代码来解析这个并在带有版本标签的版本标签中打印版本号(1.0.3XX)。

from xml.dom import minidom
xmldoc = minidom.parse('/Users/Downloads/metadata.xml')
itemlist = xmldoc.getElementsByTagName('version')
for s in itemlist:
    print(s)

谢谢!!

【问题讨论】:

    标签: python xml parsing python-3.x minidom


    【解决方案1】:

    如果我理解正确,您可以通过list comprehension 构造一个版本列表:

    versions = [version[0].firstChild.nodeValue
                for version in xmldoc.getElementsByTagName('version')]
    

    另见:

    【讨论】:

    • 当我使用您在此处提到的单行代码时,出现属性错误:AttributeError: Element instance has no attribute 'getitem' 但我能够使用version[0].firstChild.nodeValue 位并为我的问题找到解决方案谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2015-05-31
    • 2017-09-22
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多