This script reads an XML BOM (also called python-bom in kicad-cli
) using beautifulsoup4
and – as an usage example, generates a RefDes to footprint name dictionary:
from bs4 import BeautifulSoup def extract_footprints_by_ref_from_xml(filename): footprints_by_ref = {} # e.g. "C3" => "Capacitor_SMD:C_0603_1608Metric" with open(filename, "r") as infile: soup = BeautifulSoup(infile, features="xml") for component in soup.export.components.findChildren("comp"): refdes = component.attrs["ref"] footprints_by_ref[refdes] = component.footprint.text return footprints_by_ref