美文网首页
python解析xml文件

python解析xml文件

作者: 有事没事扯扯淡 | 来源:发表于2019-12-12 16:35 被阅读0次

    XML 指可扩展标记语言(eXtensible Markup Language)。被设计用来传输和存储数据。
    XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。
    它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。利用Python对xml进行解析常用XML,SAX,DOM, 以及 ElementTree :

    此处对DOM方法进行记录:

    文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。

    一个 DOM 的解析器在解析一个 XML 文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。

    movies.xml文件内容

    <collection shelf="New Arrivals">
    <movie title="Enemy Behind">
      <type>War, Thriller</type>
      <format>DVD</format>
      <year>2003</year>
      <rating>PG</rating>
      <stars>10</stars>
      <description>Talk about a US-Japan war</description>
    </movie>
    <movie title="Transformers">
      <type>Anime, Science Fiction</type>
      <format>DVD</format>
      <year>1989</year>
      <rating>R</rating>
      <stars>8</stars>
      <description>A schientific fiction</description>
    </movie>
      <movie title="Trigun">
      <type>Anime, Action</type>
      <format>DVD</format>
      <episodes>4</episodes>
      <rating>PG</rating>
      <stars>10</stars>
      <description>Vash the Stampede!</description>
    </movie>
    <movie title="Ishtar">
      <type>Comedy</type>
      <format>VHS</format>
      <rating>PG</rating>
      <stars>2</stars>
      <description>Viewable boredom</description>
    </movie>
    </collection>
    

    利用Python进行解析如下:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
     
    from xml.dom.minidom import parse
    import xml.dom.minidom
     
    # 使用minidom解析器打开 XML 文档
    DOMTree = xml.dom.minidom.parse("movies.xml")
    collection = DOMTree.documentElement
    if collection.hasAttribute("shelf"):
       print "Root element : %s" % collection.getAttribute("shelf")
     
    # 在集合中获取所有电影
    movies = collection.getElementsByTagName("movie")
     
    # 打印每部电影的详细信息
    for movie in movies:
       print "*****Movie*****"
       if movie.hasAttribute("title"):
          print "Title: %s" % movie.getAttribute("title")
     
       type = movie.getElementsByTagName('type')[0]
       print "Type: %s" % type.childNodes[0].data
       format = movie.getElementsByTagName('format')[0]
       print "Format: %s" % format.childNodes[0].data
       rating = movie.getElementsByTagName('rating')[0]
       print "Rating: %s" % rating.childNodes[0].data
       description = movie.getElementsByTagName('description')[0]
       print "Description: %s" % description.childNodes[0].data
    

    输出结果自己打印吧~

    [参考链接]
    https://www.runoob.com/python/python-xml.html

    相关文章

      网友评论

          本文标题:python解析xml文件

          本文链接:https://www.haomeiwen.com/subject/alytnctx.html