XML Parsing code

WonTerry·2025년 3월 7일

Python

목록 보기
2/5

XML 파싱

import xml.etree.ElementTree as ET
import pandas as pd

def parse_frequency_and_magnitude(xml_file):
    tree = ET.parse(xml_file)
    root = tree.getroot()

    frequency_list = []
    magnitude_list = []

    # <sub0><frequency> 데이터 추출 영역 </frequency></sub0>
    for sub0 in root.findall('.//sub0'):
        frequency_str = sub0.find('frequency').text if sub0.find('frequency') is not None else ''
        frequency_list.extend(map(int, frequency_str.split(';')) if frequency_str else [])

        magnitude_str = sub0.find('magnitude').text if sub0.find('magnitude') is not None else ''
        magnitude_list.extend(map(float, magnitude_str.split(';')) if magnitude_str else [])

    # 데이터 프레임으로 저장
    df = pd.DataFrame({
        'frequency': frequency_list,
        'magnitude': magnitude_list
    })

    return df

ML 파일 구조 예제

<root>
<sub0>
<frequency>100;200;300;400;500;</frequency>
<magnitude>11;12;13;14;15;</magnitude>
</sub0>
<data>
<frequency>200Hz</frequency>
<magnitude>3.4</magnitude>
</data>
</root>

XML 파일 로딩 & 함수 호출을 통한 parsing

xml_file = 'example.xml'
df = parse_frequency_and_magnitude(xml_file)
print(df)

import os

if os.path.isfile('example.xml'):
    df = parse_frequency_and_magnitude('example.xml')
    print(df)
else:
    print("The file 'example.xml' does not exist.")

출력 결과

frequency magnitude
0 100 11.0
1 200 12.0
2 300 13.0
3 400 14.0
4 500 15.0

profile
Hello, I'm Terry! 👋 Enjoy every moment of your life! 🌱 My current interests are Signal processing, Machine learning, Python, Database, LLM & RAG, MCP & ADK, Multi-Agents, Physical AI, ROS2...

0개의 댓글