爬虫项目之xml解析

作者: 幼姿沫 | 来源:发表于2021-03-29 14:58 被阅读0次

    1.xml是获取xml报文并且如何分析数据

    xml文件如下*

    <?xml version="1.0" encoding="UTF-8"?>

    <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

      <RegistrationInfo>

        <Date>2018-03-19T03:57:44.2908045</Date>

        <Author>FANBINGLIN\Administrator</Author>

        <Description>开机提醒事件</Description>

      </RegistrationInfo>

      <Triggers>

        <LogonTrigger>

          <Enabled>true</Enabled>

        </LogonTrigger>

      </Triggers>

      <Principals>

        <Principal id="Author">

          <UserId>FANBINGLIN\Administrator</UserId>

          <LogonType>InteractiveToken</LogonType>

          <RunLevel>LeastPrivilege</RunLevel>

        </Principal>

      </Principals>

      <Settings>

        <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>

        <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>

        <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>

        <AllowHardTerminate>true</AllowHardTerminate>

        <StartWhenAvailable>false</StartWhenAvailable>

        <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>

        <IdleSettings>

          <StopOnIdleEnd>true</StopOnIdleEnd>

          <RestartOnIdle>false</RestartOnIdle>

        </IdleSettings>

        <AllowStartOnDemand>true</AllowStartOnDemand>

        <Enabled>true</Enabled>

        <Hidden>false</Hidden>

        <RunOnlyIfIdle>false</RunOnlyIfIdle>

        <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>

        <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>

        <WakeToRun>false</WakeToRun>

        <ExecutionTimeLimit>P3D</ExecutionTimeLimit>

        <Priority>7</Priority>

      </Settings>

      <Actions Context="Author">

        <ShowMessage>

          <Title>每日提醒</Title>

          <Body>

    1、掌握python基本语法,3.19-3.24

    2、VBA程序研究

    3、工作任务总结</Body>

        </ShowMessage>

      </Actions>

    </Task>

    解析文件如下*

    #!/usr/bin/python3

    #coding:utf-8

    from xml.dom.minidom import parse

    import xml.dom.minidom

    Root = xml.dom.minidom.parse('开机提醒.xml')

    # print(dir(DOMTree))

    task = Root.documentElement

    # print(dir())

    for line in task.childNodes:

        # print('line.nodeName:',line.nodeName,'line.nodeType:',line.nodeType,'line.nodeValue:',line.nodeValue,'line.normalize:',line.normalize)

        # print(len(line))

        # print(line)

        if 3 == line.nodeType:

            continue

        if 'Actions' == line.nodeName:

            for tmp in line.childNodes:

                # print(tmp)

                if 3 == tmp.nodeType:

                    continue

                # print(tmp)

                for tmp1 in tmp.childNodes:

                    if 3 == tmp1.nodeType:

                        continue   

                    for tmp2 in tmp1.childNodes:

                        # print(tmp2)

                        # if 3 == tmp2.nodeType:

                        #  continue

                        print(tmp2.nodeValue)

        # for line1 in line.childNodes:

        #  if 3 == line1.nodeType:

        #      continue

        #  # print(line1.nodeName)

        #  # print(dir(line1))

        #  for line2 in line1.childNodes:

        #      if 3 == line2.nodeType:

        #          continue

                # print(line2.nodeValue)

                # print(line2.data)

    效果图展示*

    2.xml的解析

    XML 指可扩展标记语言(eXtensibleMarkupLanguage)

    XML 被设计用来传输和存储数据。

    XML 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。

    它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言


    Python 对 XML 的解析

    常见的 XML 编程接口有 DOM 和 SAX,这两种接口处理 XML 文件的方式不同,当然使用场合也不同。

    Python 有三种方法解析 XML,SAX,DOM,以及 ElementTree:

    1.SAX (simple API for XML )

    Python 标准库包含 SAX 解析器,SAX 用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。

    2.DOM(Document Object Model)

    将 XML 数据在内存中解析成一个树,通过对树的操作来操作XML。

    3.ElementTree(元素树)

    ElementTree就像一个轻量级的DOM,具有方便友好的API。代码可用性好,速度快,消耗内存少。

    注:因DOM需要将XML数据映射到内存中的树,一是比较慢,二是比较耗内存,而SAX流式读取XML文件,比较快,占用内存少,但需要用户实现回调函数(handler)。

    相关文章

      网友评论

        本文标题:爬虫项目之xml解析

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