簡體   English   中英

如何打印 XML 解析中的屬性和標簽?

[英]How can I print the attributes and tags in XML parsing?

我正在通過 python 中的 Element Tree 解析一個 XML 文件。

我想打印我的 xml 文件中的每個標簽和值。

->這是我的 XML 文件

<EIT_PARSER>
          <EVENT>
                <VERSION>13</VERSION>
                <START_DATE>2018-03-14</START_DATE>
                <START_TIME>07:05:00</START_TIME>
                <DURATION>00:30:00</DURATION>
                <SHORT-DESCRIPTION>
                    <DESCRIPTION>
                        <LANG>tur</LANG>
                        <NAME>Tuhaf İcatlar</NAME>
                        <CODING>ISO-8859-9</CODING>
                    </DESCRIPTION>
                </SHORT-DESCRIPTION>
                <ID>651</ID>
                <FREE-CA-MODE>1</FREE-CA-MODE>
                <RUNNING-STATUS>0</RUNNING-STATUS>
                <EXTENDED-DESCRIPTION>
                    <DESCRIPTION>
                        <LANG>tur</LANG>
                        <TEXT>ŠSeloteyple, hazır kahvenin ortak noktası ne olabilir? Ya da Kleenex ve GPS Konumlama aygıtının? Şaşırmaya hazırlıklı olun! Bu dizi, en sıradan araçların neden ve nasıl keşfedildiğini ele alıyor.</TEXT>
                        <CODING>ISO-8859-9</CODING>
                    </DESCRIPTION>
                </EXTENDED-DESCRIPTION>
                <CLASSIFICATIONS>
                    <CONTENT>
                        <NIBBLE_LEVEL_1>9</NIBBLE_LEVEL_1>
                        <NIBBLE_LEVEL_2>0</NIBBLE_LEVEL_2>
                        <BROADCASTER_BYTE>4</BROADCASTER_BYTE>
                    </CONTENT>
                </CLASSIFICATIONS>
                <PARENTAL-RATING>
                    <RATING>
                        <COUNTRY_CODE>TUR</COUNTRY_CODE>
                        <AGE>0</AGE>
                    </RATING>
                </PARENTAL-RATING>
            </EVENT>
</EIT_PARSER>

我的代碼:

import xml.etree.ElementTree as ET
tree = ET.parse('y.xml')
root = tree.getroot()

for event in root.findall('EVENT'):
    desc = event.find('SHORT-DESCRIPTION')
    if desc is None:
        continue
    desc_s = desc.text
    children = event.get('DESCRIPTION')
    .
    .
    .
    .

我想檢查標簽然后獲取它們的值。

如何打印所有標簽和值?

您需要 go 向下進入樹才能訪問更深層次的數據。

import xml.etree.ElementTree as ET


def get_data():
    root = ET.parse('data.xml')
    for event in root.findall('.//EVENT'):
        version = event.find('VERSION').text
        lang = event.find('SHORT-DESCRIPTION').find('.//LANG').text
        name = event.find('SHORT-DESCRIPTION').find('.//NAME').text
        lang2 = event.find('EXTENDED-DESCRIPTION').find('.//LANG').text
        text = event.find('EXTENDED-DESCRIPTION').find('.//TEXT').text

Output:

13
tur
Tuhaf İcatlar
tur
Seloteyple, hazır kahvenin ortak noktası ne olabilir?.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM