从山西到广西北海可以乘坐火车或飞机。乘坐火车的话,可以先乘坐高铁或普通列车到南京或上海,然后再转乘到广西南宁的火车,最后再转乘到北海的火车。乘坐飞机的话,可以先到西安、重庆或成都等城市的机场,然后再转乘到北海的飞机。整个行程大概需要1-2天的时间。可以根据个人时间和预算选择合适的交通工具。