How to read KiCAD XML BOM using Python
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