Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
GPX and XML parsing
#2
I think is much eaiser if you a parser like Beautiful Soup.
There are also own parsers for GPX like eg gpxpy
Example.
from bs4 import BeautifulSoup

soup = BeautifulSoup(open('ggx.xml'), 'html.parser')
Example find all opencpn.
>>> open_scale = soup.find_all('opencpn:scale_min_max')
>>> open_scale
[<opencpn:scale_min_max scalemin="199999" usescale="true"></opencpn:scale_min_max>,
 <opencpn:scale_min_max scalemin="199999" usescale="true"></opencpn:scale_min_max>,
 <opencpn:scale_min_max scalemin="199999" usescale="true"></opencpn:scale_min_max>]

>>> open_scale[0]
<opencpn:scale_min_max scalemin="199999" usescale="true"></opencpn:scale_min_max>

# The attributes as dictionary
>>> open_scale[0].attrs
{'scalemin': '199999', 'usescale': 'true'}
>>> open_scale[0].attrs['scalemin']
'199999'
Example find desc
>>> desc = soup.find_all('desc')
>>> desc
[<desc>Antwerpen: Haven Antwerpen
Londenbrug
Beweegbaar
</desc>,
 <desc>Antwerpen: Haven Antwerpen
Siberiabrug
Vast  
</desc>,
 <desc>Antwerpen: Haven Antwerpen
Mexicobrug
Vast  
ABC</desc>]

# Get the text of the last one
>>> desc[2]
<desc>Antwerpen: Haven Antwerpen
Mexicobrug
Vast  
ABC</desc>

>>> desc[2].text
'Antwerpen: Haven Antwerpen\nMexicobrug\nVast  \nABC'

>>> print(desc[2].text.strip())
Antwerpen: Haven Antwerpen
Mexicobrug
Vast  
ABC
This is a little more advance,so CSS Selector works for XML in BS4.
So can go to a vaule directly.
>>> op = soup.select_one('wpt:nth-child(3) > desc')
>>> op
<desc>Antwerpen: Haven Antwerpen
Mexicobrug
Vast  
ABC</desc>
Reply


Messages In This Thread
GPX and XML parsing - by Adriaan - Feb-27-2023, 01:37 PM
RE: GPX and XML parsing - by snippsat - Feb-27-2023, 04:26 PM
RE: GPX and XML parsing - by Adriaan - Feb-28-2023, 08:48 AM
RE: GPX and XML parsing - by Larz60+ - Feb-28-2023, 11:21 AM
RE: GPX and XML parsing - by Adriaan - Mar-03-2023, 01:44 PM
RE: GPX and XML parsing - by jnunez - Apr-10-2023, 08:18 AM
RE: GPX and XML parsing - by snippsat - Apr-10-2023, 11:37 AM
RE: GPX and XML parsing - by jnunez - Apr-10-2023, 01:34 PM

Forum Jump:

User Panel Messages

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