Why the cvx doesn’t want to accept (1-xa)/xa?it is convex!

This is only convex when x >= 0; Rewrite it as 2*(1/xa - 1), which can be expressed in CVX, presuming you are willing to impose x >= 0, as 2*(inv_pos(xa) - 1)

You should read Why isn't CVX accepting my model? READ THIS FIRST!