Python Forum
parsing local xml files to csv
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
parsing local xml files to csv
#7
Thank you @snippsat so much for your help.
I've been doing this all day.I've made different experiments with what you wrote.
I managed to do some of them. Simply the ones.
great thing you did for sumStat.
I tried to do something for catgry. But the result is not correct.

always the latest values, All values are not coming.

import itertools
from bs4 import BeautifulSoup
lst = []
soup = BeautifulSoup(open('NPL_2008_LFS_v01_M_v01_A_ILOVAR.xml', encoding='utf-8'), 'xml')
title = soup.find('titl')
producer = soup.find('producer')
#affiliation=(soup.find('producer'))['affiliation']
#print(title.text.strip())
#print(producer.attrs.get('affiliation'))
data = soup.find('dataDscr')
vars = data.find_all('var')
for var in vars:
    
    ID=var.attrs.get('ID')
    name=var.attrs.get('name')
    files=var.attrs.get('files')
    dcml=var.attrs.get('dcml')
    intrvl=var.attrs.get('intrvl')
    labl=var.find('labl').text.strip()
    sumStat=[i.text.strip() for i in var.find_all('sumStat')]
   
    VarFormat=(var.find('varFormat')).attrs.get('type')
    stdCatgry = [stdCat.text.strip() for stdCat in  var.find_all("stdCatgry")]
    
    #There is a mistake, I will look after merge the categories.
    #Range_Min=var.find_all('range')
    #Range_Unit=(var.find_all('range'))['UNITS']
    #Range_Min=(var.find_all('range'))['min']
    #Range_Max=(var.find_all('range'))['max']
    #print(Range_Min)
    

    #I tried to do as follows. I could not be successful.

    for cat in var.find_all('catgry'):
        
               
        catValu =  [ values.text.strip() for values in cat.findAll("catValu")]
        catlabl =  [ values.text.strip() for values in cat.findAll("labl")]
        data = [item for item in itertools.zip_longest(catValu, catlabl)]
        
    print(title.text.strip(),producer.text.strip(),ID,name,files,dcml,intrvl,labl,sumStat,VarFormat,data,stdCatgry)
    lst.append((title.text.strip(),producer.text.strip(),ID,name,files,dcml,intrvl,labl,sumStat,VarFormat,data,stdCatgry))
As you said, I'm trying to do something from the code you've written.
but it did not succeed as I wrote above with red. It brings the most recent value, and I couldn't merge with <catValu> and <labl> (<catValu>-<labl>).
yours sincerely
Reply


Messages In This Thread
parsing local xml files to csv - by erdem_ustunmu - Feb-23-2019, 11:30 AM
RE: parsing local xml files to csv - by snippsat - Feb-23-2019, 12:22 PM
RE: parsing local xml files to csv - by snippsat - Feb-23-2019, 10:41 PM
RE: parsing local xml files to csv - by snippsat - Feb-25-2019, 03:24 PM
RE: parsing local xml files to csv - by erdem_ustunmu - Feb-25-2019, 04:14 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  uploading files from a ubuntu local directory to Minio storage container dchilambo 0 571 Dec-22-2023, 07:17 AM
Last Post: dchilambo
  How to take the tar backup files form remote server to local server sivareddy 0 1,988 Jul-14-2021, 01:32 PM
Last Post: sivareddy
  opening files and output of parsing leodavinci1990 4 2,644 Oct-12-2020, 06:52 AM
Last Post: bowlofred
  Parsing Xml files >3gb using lxml iterparse Prit_Modi 2 2,453 May-16-2020, 06:53 AM
Last Post: Prit_Modi
  Parsing Attached .MSG Files with Python3 ericl42 1 3,754 Apr-12-2019, 06:28 PM
Last Post: ericl42
  Fetching html files from local directories shiva 3 3,556 Mar-20-2018, 05:12 PM
Last Post: wavic

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020