The calculated distance (air line) between Shanghai and Xuanzhou is approximately 161 miles respectively 259 kilometers.
By car or train, the actual journey to Xuanzhou is certainly longer, as only the direct route (as the crow flies) between Shanghai and Xuanzhou has been calculated here.