I suggest using XSLT to transform Docbook to other XML. It’s purpose-built for that task. Saxonica offers a Python plug-in, though truth is that the XSLT solution can do everything you need.
Yeah, look, it's hacky, yes, and maybe runs only with a certain setting.
But, well, you may be right, when I think a second time about this. Thanks...
XSLT is a functional programming language that leans heavily on XPath to support transformation of tree-based structures. XQuery is another in the same vein. But you can accomplish the same things using an imperative language like Python, calling into XPath for data.