分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Muhammad Hamaad Latif

我在提取XML标记值时遇到问题 - I am facing trouble to extract xml tags values

  •  0
  • Muhammad Hamaad Latif  · 技术社区  · 2 周前

    问题陈述 我正在开发一个API。我已经将它的响应数据保存到一个XML文件中,现在想从中提取数据。这是一个非常大的文件,里面有很多数据标签, 但我想提取一些数据,并想为我正在进行的项目制作它的JSON文件。

    XML响应示例为:

        xmlns:meta="http://www.tomtom.com/service/tis/parkingprobabilities/metadata/1.1"
                          schemaVersion="1.1">
        <meta:metaData>
            <meta:creatorUUID>aaac93fc-ba74-102b-b5ef-00304891a58c</meta:creatorUUID>
            <meta:creationTimeUTC>2016-09-30T19:58:01</meta:creationTimeUTC>
            <meta:timeZone>Europe/Berlin</meta:timeZone>
            <meta:cityName>Berlin</meta:cityName>
            <meta:countryCode>DE</meta:countryCode>
            <meta:description>Example showing parking probability and search time profile</meta:description>
        </meta:metaData>
        <roadSegment>
            <uuid>00000000-069f-6d7a-017f-78b7f701185b</uuid>
            <parkingDataProfile>
                <dailyProfile>
                    <weekdays>
                        <day>MON</day>
                        <day>TUE</day>
                        <day>WED</day>
                        <day>THU</day>
                        <day>FRI</day>
                    </weekdays>
                    <hourlyData>
                        <hourOfDay>0</hourOfDay>
                        <parkingProbability>0.10</parkingProbability>
                        <averageSearchTime>12</averageSearchTime>
                    </hourlyData>
                    <hourlyData>
                        <hourOfDay>1</hourOfDay>
                        <parkingProbability>0.10</parkingProbability>
                        <averageSearchTime>11</averageSearchTime>
                    </hourlyData>
                    <hourlyData>
                        <hourOfDay>2</hourOfDay>
                        <parkingProbability>0.10</parkingProbability>
                        <averageSearchTime>10</averageSearchTime>
                    </hourlyData>
                    <!-- usually contains more -->
                    <!-- some time slots could be missing -->
                    <hourlyData>
                        <hourOfDay>23</hourOfDay>
                        <parkingProbability>0.10</parkingProbability>
                        <averageSearchTime>9</averageSearchTime>
                    </hourlyData>
                </dailyProfile>
                <!-- could contain more -->
            </parkingDataProfile>
         </roadSegment>
         <!-- many more -->
    </parkingProbabilities>
    

    预期输出:

    每个小时的整小时数据标记值 每日配置文件节点

    迄今为止尝试的代码:

    from xml.dom import minidom
    mydoc = minidom.parse('data_file.xml')
    
    hourly_data = mydoc.getElementsByTagName("hourlyData")
    for data in hourly_data:
        print(data.nodeValue)
    

    对不起,我犯了一个不寻常的错误。

    输出: 我得到 没有 印刷在屏幕上。

    1 回复  |  直到 2 周前
        1
  •  2
  •   Tc Zhong    2 周前

    试试这个。您需要获取实际的节点来获取数据。

    from xml.dom import minidom
    mydoc = minidom.parse('data_file.xml')
    
    hourly_data = mydoc.getElementsByTagName("hourlyData")
    for data in hourly_data:
        print(data.getElementsByTagName("parkingProbability")[0].childNodes[0].data)
        print(data.getElementsByTagName("averageSearchTime")[0].childNodes[0].data)
        print(data.getElementsByTagName("hourOfDay")[0].childNodes[0].data)