Yeah yeah, but terminology aside, having 2 or three digits in each
attribute is just wrong!
Terminology aside, why? The unit is "8.1" not "8" and "1". It makes no
sense to say you're on version 8, in the given context, so why should the
XML data pretend there is?
//Magnus
Just pretend that :
- version = a tuple of integers (a, b, c, ...)
- major = (a, b)
- minor = (c, ...)
Besides, that is sortable (unlike strings where 15 < 2) :
latest minor for major :
major, max(minor) where major = what you want
<pgversion><major><int value="8" /><int value="2" /></major><minor><int
value="3" /></minor></pgversion>
from BeautifulSoup import BeautifulSoup as Soup
s = Soup("""<pgversion><major><int value="8" /><int value="2"
/></major><minor><int value="3" /></minor></pgversion>""" )
v = s.find('pgversion')
[int(x['value']) for x in v.find('major') ]
[8, 2]
[int(x['value']) for x in v.find('minor') ]
[3]