I am calling
ShowSteps[exp_] :=
WolframAlpha[ToString@HoldForm@InputForm@exp, {{"Input", 2}, "Content"},
PodStates -> {"Input__Step-by-step solution"}]
SetAttributes[ShowSteps, HoldAll]
ShowSteps["integrate sin(4x)dx from 0 to 3"]
and am receiving step-by-step solution, just as one would receive in WolframAlpha website after clicking "Step-by-step solution" button. How do I extract everything (as MathML), that is an expression, e.g. all integrals, substitution variables and bounds, basically everything, that is not string (I am currently talking about Step-by-step solutions only for definite integrals)? By extract I mean convert it to MathML and output to file
EDIT:
Just to clarify. I have already got solution:

Now I need to extract everything that is vital to step-by-step solution, in other words, integrals, substitution variables ($u=4x$, $du =4dx$, etc.), convert them to MathML and output to file (I will be adding them to Word document).