How do I open a gbXML file?

Opening a gbXML file using lxml

gbXML files can be opened using the standard lxml process as follows:

from lxml import etree

tree=etree.parse('gbXMLStandard.xml')
gbxml=tree.getroot()

print(type(gbxml))
# prints "<class 'lxml.etree._Element'>"

print(len(list(gbxml)))
# prints "1159"

print (gbxml.attrib)
# prints "{'useSIUnitsForResults': 'false', 'temperatureUnit': 'C', 'lengthUnit': 'Feet',
#          'areaUnit': 'SquareFeet', 'volumeUnit': 'CubicFeet', 'version': '0.37'}"

Opening a gbXML file using xgbxml

When using xgbxml, a parser is first created using the get_parser() function.

This parser is then used by lxml when parsing the gbXML file.

from lxml import etree
import xgbxml

parser=xgbxml.get_parser('0.37')

tree=etree.parse('gbXMLStandard.xml', parser)
gbxml=tree.getroot()

print(type(gbxml))
# prints "<class 'xgbxml.xgbxml.gbXML'>"

print(len(list(gbxml)))
# prints "1159"

print (gbxml.attrib)
# prints "{'useSIUnitsForResults': 'false', 'temperatureUnit': 'C', 'lengthUnit': 'Feet',
#          'areaUnit': 'SquareFeet', 'volumeUnit': 'CubicFeet', 'version': '0.37'}"

Note that the gbxml variable is now an instance of the xgbxml.xgbxml.gbXML class. This is a class provided by xgbxml which extends the lxml.etree._Element class with additional attributes and methods.